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>
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>
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>
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>
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>
While processing the user space submitted isp packet,
isp context need to know the packet opcode.
Get the opcode from the hw manager than the direct accessing the
opcode from packet.
Ife umd sends different opcodes then tfe umd. Both ife and tfe kernel
packet opcodes are same. So hw manager can consume this differences.
CRs-Fixed: 2585713
Change-Id: I54813af233cd8bfa640f2688c1334510a5b85f1c
Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
First request id not getting dump if early pcr is on.
If early pcr is on need to store the parsed register dump descriptor
for first request id which comes as init packet.
CRs-Fixed: 2595702
Change-Id: Icbf94d65b5c35cdf47044d770c7db7093001d506
Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
Due to the asynchronous nature of platform probes, inter
dependency between drivers needs to be taken care during
kernel boot up. Component helper provides the facility of
adding matching drivers in a list ordered in the way we want
to bind those drivers. The CRM driver acts as component master
to make sure all slave drivers are bound before it returns
from its own bind call. Add support for serializing platform
probes through component framework.
CRs-Fixed: 2584631
Change-Id: I345da1d2b9cccf6021ac6fc899143013b7714ec4
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
This change adds blob support to disable CSID EOT IRQ
in case of high data rate sensors which sends
EPD instead of EOT.
CRs-Fixed: 2566158
Change-Id: I8ac6d2281a6510d3702f3b651e2c7ca2391afe6c
Signed-off-by: Prakasha Nayak <pnayak@codeaurora.org>
Add support for IFE2 hardware in ife hw manager, bus files.
CRs-Fixed: 2571273
Change-Id: I6193b70707b15282b8d819e8dda5eb2e5fc4c345
Signed-off-by: Gaurav Jindal <gjindal@codeaurora.org>