There is a possibility that the priority variable would be
accessed even for the HEAD node which would result in
out of bound errors, so access the elements of the
structure only if the handler is found.
CRs-Fixed: 2646173
Change-Id: I0540658b9c9487f6e3a4601a488a1add1e790dda
Signed-off-by: Tejas Prajapati <tpraja@codeaurora.org>
For lagoon, few changes in CSID and IFE to handle the
dual vfe sync and halt.
For CSID, while handling the halt, external and internal
core configuration is changed.
For VFE, 3 IFE support is possible with the combinations:
0-1, 1-2, 0-2. This requires changes in dual vfe sync handling.
Also, CSID and IFE versions are updated.
This commit adds the driver header files for the version and
handles the hardware changes in the driver.
CRs-Fixed: 2571273
Change-Id: I48fd3319692cc1044beb20c278cc2fe5676cb668
Signed-off-by: Gaurav Jindal <gjindal@codeaurora.org>
Signed-off-by: Vishalsingh Hajeri <vhajeri@codeaurora.org>
New usecase for flash driver requires to be trigger at EOF.
This change adds the new operation code support in flash
driver along with EOF enable support in crm and across
other drivers. Also to improve the performance, this change
adds the logic to dynamically update the subscribe event to
CRM, so that CRM can enqueue EOF events when Flash or any other
device add the request for EOF.
CRs-Fixed: 2633194
Change-Id: I2f68ac7fc6a4699debd39b64319728cdf17bbcfa
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
Intra-client mask is unused in Bus version 2.0 hardware
and can be removed.
CRs-Fixed: 2641529
Change-Id: I89b3620496995dbef8a6b09718f20a419ccf632c
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
This change adds a check for slave core in dual IFE usecases
to avoid subscribing to SOF/EOF/EPOCH IRQs. We can use IRQs
from single core to drive our state machine. Error IRQs must
still be subscribed to as earlier.
CRs-Fixed: 2639855
Change-Id: I6aa6ab5b7e1049cd12f702da560b9b4a6ba9562b
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
crm applied both sensor and isp packets,sensor packet failed to
apply due to CCI timeout error. In the meantime ISP packet applied
and that request of ISP moved to free_list.In the next epoch crm
trying to reapply both the packets of sensor and isp again.In this
case ISP always reporting an apply failure because its pending queue
doesn’t have that request.To handle this we are skipping to re-apply
the ISP successful buf_done request and trying to apply only sensor
packet in this scenario.
CRs-Fixed: 2599186
Change-Id: Id7e72fc016a75782b57f05558c615b069b416ffe
Signed-off-by: Mangalaram ARCHANA <mangar@codeaurora.org>
Currently CRM waits for a single trigger to apply settings
for all the devices on a given link. This change provides
provision for CRM to wait on two triggers prior to applying
a given setting.
CRs-Fixed: 2627065
Change-Id: If6e4c9281cfd1bf1a8ffa369daee060d79f3c39e
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
During VFE reset we mask all bits apart from reset done. Since
the top level bus write IRQ bit is common to all output ports
it is set during the initialize hardware sequence. However since
initialize hardware is not invoked in start only case that follows
flush, we must set it again.
CRs-Fixed: 2590331
Change-Id: I73f09e552779bd65f472178c1025594be03025fb
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
Missing video unregister was causing list delete corruption.
Also, there were double free errors in Sync and CRM driver. Fix
v4l2 issues by adding the missing unregister calls and changing
release callback to empty, because we are freeing it during
cleanup. Improve logging during bind/unbind to better reflect what
is happening.
CRs-Fixed: 2584631
Change-Id: Idc5db655d22df54e8bdb470d29896e10f6987796
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
CSID TPG and PHY TPG require different values for VC/DT. This change
renames the macros to more distinct identifiers and assigns the
appropriate values based on input TPG type.
CRs-Fixed: 2632165
Change-Id: I136eb88a7cec338898cab8537cb080a0f26c2f77
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
This change adds a check if DSP is enabled to ensure lower
index IFE cores are acquired since only they support DSP
mode.
CRs-Fixed: 2632139
Change-Id: Ib1be26be9d5afd83f565ddf5adb989ef463d8b8d
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
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>
This change adds a check for plane ID when updating write master
height value in per frame blob. Plane C must be programmed with
half the height.
CRs-Fixed: 2626999
Change-Id: I44b4d69d9d330342c444bbe435c6a54ad9f3bd6f
Signed-off-by: Venkat Chinta <vchinta@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 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>
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>