This change saves the dual IFE flag during CAMIF acquire. This
line was misplaced during rebase of commit 8e79606ada ("msm:
camera: isp: Add support for offline IFE").
CRs-Fixed: 2630545
Change-Id: I321898aa6550b15240ca4308b1ceda1fbad14963
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
Add support for qti flash along with updated max current DT
property. Remove support for enable/disable regulator as it
is no-op since a long time.
CRs-Fixed: 2584631
Change-Id: I3305e7b6e4d6ef34d90d38f5f25cfa5b8b817f8b
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
The work data passed as payload to workq is statically allocated,
which has kfree call during destroy, this fails during component
unbind. Change allocation of work data to dynamic in fd hw manager.
CRs-Fixed: 2584631
Change-Id: I0cd2a152d39793ce620e9a9fc2950ee91cefe6bf
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
When smmu get handle is called, mutex unlock is called on a lock
that was not acquired. Add mutex lock condition to balance it.
Also, re-organize the conditions for handle types to be mutually
exclusive.
CRs-Fixed: 2584631
Change-Id: I057b8812c8f76e157503eb5c76aa1de174563f3a
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
During deinit, we are dereferencing resource data even for unavailable
out resource. Avoid dereferencing NULL pointer during vfe deinit out
resource.
CRs-Fixed: 2584631
Change-Id: I8488ccf73f62c551fc9d6ce3d636b10d8b0c7b8c
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
Currently requests for offline IFE are applied from tasklet
context or from an ioctl thread within a critical section
protected by a spinlock. In both of these cases, preemtion is
disabled but CDM requires mutex locks during this operation.
Therefore a work queue is added in this change to handle
apply request for offline IFE.
CRs-Fixed: 2606911
Change-Id: Ie893a626bc274d026fb878f1f19830e990be6dc6
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
This change adds more information to existing acquire and
hfr update logs.
CRs-Fixed: 2606911
Change-Id: I1ff4e1cbdd52be6b5c434438772084c4fdb2e80e
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
This commit changes halt type when HVX streamer is
enabled as halting immediately will lead to HVX hang.
CRs-Fixed: 2620821
Change-Id: Iab28cb91018899acec1eb671a87aec05b872391e
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
This commit changes the data type used to capture
wait for completion timeout return value from
integer type to the more appropriate unsigned
long type.
CRs-Fixed: 2620807
Change-Id: Ifcf54bdee133df5277ce56f0ba85442d32046eac
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
During reset of vfe hw, we are referencing an ife device which might
not be available. Add condition to check ife device validity before
reset.
CRs-Fixed: 2584631
Change-Id: Ibf9e3e0a3696cf006977af60360a964748e8ef38
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
In cdm hw unbind, smmu handle is destroyed before handler is
unset. Also, mutex unlock is unbalanced during error case. Fix
invalid unset handler call and unbalanced mutex in component
unbind for hw cdm.
CRs-Fixed: 2584631
Change-Id: I8e117ce9623ba631d9457ef851b8f271591091b6
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
The devm_kfree call in remove is unbalanced without a devm_kzalloc.
Add required kzalloc and free during probe to balance it.
CRs-Fixed: 2584631
Change-Id: I14164405e62036f7918b858d978afe454e4feb4a
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
In cases where IRQ delays or overlap happens, the IRQ
we get for the resource may belong to the 2nd request
in the queue. If the IRQ resource is not found in top
request, look into the second request as well.
CRs-Fixed: 2600457
Change-Id: Ida2665a00169463e2f146de1cfa6be076d8c7d72
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
Toggle reset register in common and reset programming sequence.
CRs-Fixed: 2615460
Change-Id: Iba17fa3b2014be0bc27236169cf8456a7f8ededd
Signed-off-by: Tony Lijo Jose <tjose@codeaurora.org>
This change reduces CSID reset timeout from one second
to hundred milliseconds.
CRs-Fixed: 2619894
Change-Id: I1593b033356fc17c2fc35e962dd193a5537b23b7
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
This change adds new IRQ state machine and updates the acquire
logic to enable offline IFE. This change also adds the fixes
necessary to enable bus read for various buffer formats and
append go command at the end of each packet for offline
context.
CRs-Fixed: 2513939
Change-Id: Ie068670ed11aa6713e8f0cb817e4b5d4c209e696
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
In use-cases that involve custom HW retrieve the timestamp
for shutter from frame header as opposed to csid registers.
CRs-Fixed: 2524308
Change-Id: I5de789cf939546affbfe6d537d8090982f39189d
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
When user space detects an error or does not receive
response for a request, Lets do a reset(LDAR) is triggered.
Before LDAR, user space sends flush command to the
kernel space.
In order to debug the cause for this situation and to dump
the information, user space sends a dump command to
kernel space before sending flush.
As a part of this command, it passes the culprit request id
and the buffer into which the information can be dumped.
Kernel space traverses across the drivers and find the culprit hw
and dumps the relevant information in the buffer.
This data is written to a file for offline processing.
This commit dumps the IFE, CSID registers, LUT tables and context
information, cmd buffers, timestamps information for
submit, apply, RUP, epoch and buffdones of the last 20
requests.
CRs-Fixed: 2612116
Change-Id: If83db59458c1e5ad778f3fa90cbc730122491c54
Signed-off-by: Gaurav Jindal <gjindal@codeaurora.org>
This change captures the frame index as part of the IFE top
register space at every epoch event. The index is then notified
to userspace as part of shutter notification.
CRs-Fixed: 2524308
Change-Id: Iac510c452f9ceda86e9f7d69528f22f81e614974
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>