Add common utility functions to be used across isp
context. Util functions added to notify trigger points,
notify errors, pause CRM SOF timer and trigger register dumps.
The change also modifies certain pointer validations to
accomplish this.
CRs-Fixed: 3045706
Change-Id: I3cb19e9a24ffb82ff25e7c278b31a8bf0e854eed
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
Based on whether the event posted to HW mgr is from CSID/IFE/SFE,
handle them accordingly. This change avoids breaking off new
functions in existing calls for different events, instead
have an independent handler for each HW type.
CRs-Fixed: 3045706
Change-Id: I139514d9028c6d613f1bc7403014474dc336df34
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
It's possible that CRM triggers frame skip call at SOF
and EOF. For IFE ignore the call on EOF. Only use
SOF trigger to apply default settings [scratch buffers],
for fetch engine use-cases.
CRs-Fixed: 3055035
Change-Id: Ic0b59e5beb6dff70bb1b515117f0b641d8e09308
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
Presil IRQ handling requires running in a workqueue, with
wait for acknowledgement in io operations. This busy wait
should be done while holding a mutex lock as opposed to
spinlock in usual irq context. Add wrapper to switch from
spinlock to mutex for presil mode in irq controller and
cdm. Add the hw lock wrapper in hw interface header.
CRs-Fixed: 2932495
Change-Id: I7600eb1e6ae8746a39e76f6cb3a2652b255f2ddd
Signed-off-by: Suraj Dongre <sdongre@codeaurora.org>
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
Currently, the structure used to aggregate incoming votes
from ife hw manager is declared as static. This is an issue
in case of multi-context camera. Add the aggregated incoming
vote entry in VFE/SFE top so that it is accessed per HW core only.
CRs-Fixed: 3008062
Change-Id: Ib174925cba3aeb86b8704fc68d6f444f476f01e6
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
CAMIF interrupts in CSID are enabled based on use case requirements.
In additionto this, inside hw manager propagation to isp context is
again dependent on the same checks. Since the enabling is based
on use-case, the checks in the handler functions are redundant.
With upgrades in hardware, the checks are increasing while handling
in hw manager.
This commit removes the checks in handler function in hw manager.
CRs-Fixed: 3052221
Change-Id: I44f59b782dba0f7e7eb20c2ace56f3094527932b
Signed-off-by: Gaurav Jindal <gjindal@codeaurora.org>
Diwali has different version of CPAS version which
requires camnoc interface changes and CPAS version
change. This change adds the same.
CRs-Fixed: 3043114
Change-Id: I698b251c43d34225053ab3a0e9c581201d6be638
Signed-off-by: Ayush Kumar <ayushkr@codeaurora.org>
Add blob info dump on finish clock/bw update error to provide
insight into what userspace has sent in packet. Also, print the
history of bw votes to check values coming from HW manager.
CRs-Fixed: 3039737
Change-Id: Ifc4df6bb7d4a3cf03715300e9edd1d3987df4a4c
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
The current implementation allows to pass uint_32 as
argument in the message callback. Changing it to (void *)
type so that any type of data can be passed in the future
implementations.
CRs-Fixed: 2847155
Change-Id: Ic52a5ccfe13efdba37bbcfdb7154ed789b1943fd
Signed-off-by: Shardul Bankar <sharbank@codeaurora.org>
To reduce traffic for shutter notification, sof and boot
sof timestamps are sent in a unified v4l2 event.
Thereby, reducing the event notification traffic by 50%.
CRs-Fixed: 3040374
Change-Id: Ib4580e0a4df7c3d1cb892fdf3254272d3134d4cb
Signed-off-by: Pranav Sanwal <psanwal@codeaurora.org>
If we config stream in order like IMAGE/IMAGE_SHORT/
PDAF, while PDAF stream reserve, it will override
sfe_inline_shdr flag to false on csid_hw, and we
can not configure the master/slave register correctly,
so we move the common sfe_inline_shdr flag to path cfg.
CRs-Fixed: 3047943
Change-Id: Ie4a863e9aa24a142c5c4b3c90553e4a2bd92d7f3
Signed-off-by: chengxue <chengxue@codeaurora.org>
In case of sHDR dynamic switch, for a frame on which we are
configuring scratch buffer, use MUP from the last applied
valid request as opposed to global reference of MUP held
by the CSID driver. The global reference could have been
updated by a future request, it would be incorrect to use
that when that request has not even been applied.
CRs-Fixed: 3038703
Change-Id: I9369dba80fa258925ab4ae573b33931352318334
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
This change corrects the wrong res id during checking
whether ife lite can be used in current usecase.
CRs-Fixed: 3046530
Change-Id: Ic24848fcd4aa85172e334a9de81c69dcdc9838cf
Signed-off-by: Depeng Shao <depengs@codeaurora.org>
Since we don't wait for requests to be ready on lower pd devices before
applying request on higher pd devices, add provision to cancel request
if it has not been applied on IFE.
CRs-Fixed: 3014942
Change-Id: I8850b0dfe3f88e04b86f7bb6b597657ad7e0a4f9
Signed-off-by: Anand Ravi <ananravi@codeaurora.org>
For RDI only batch mode use case currently image address
is programmed as many times as the batch count this is
causing a page fault with unmapped VA.
In RDI only use case the image address needs to
be programmed only once the consecutive image address is
taken from the frame increment address and image address
programmed with first frame of the batch.
CRs-Fixed: 3031033
Change-Id: I2c463125bf3b5731bcbd92bb15b364724fba45db
Signed-off-by: Tejas Prajapati <tpraja@codeaurora.org>
On overflow, cam_irq_controller_disable_all function is called from top
half handler, which itself is in a loop of all entries of top half list.
Manipulating the list to remove all elements can leave it in an unstable
state and cause the loop to never terminate. Since events are removed
from all lists when unsubscribing from the IRQs, do not clear the top
half list when disabling all events.
CRs-Fixed: 3043489
Change-Id: Idee0a017cdea1dac73e9a7a00f07463afe324983
Signed-off-by: Anand Ravi <ananravi@codeaurora.org>
SFE has two dependent controllers - bus write and bus read. Currently,
it max dependents is set to one so increase maximum dependents to fix
dependency registration failure.
CRs-Fixed: 3044375
Change-Id: Ib02490ef0016943d979506288d6192558b380534
Signed-off-by: Anand Ravi <ananravi@codeaurora.org>
Add support of new PDAF Parsed data outport for VFE 780.
CRs-Fixed: 2948116
Change-Id: Icd88e3947f6c1461c49ef6912985836931a1c62b
Signed-off-by: Chandan Kumar Jha <cjha@codeaurora.org>
This commit adds support for printing PID and MID in case
of page faults on SFE.
CRs-Fixed: 3040816
Change-Id: I99f8c6de6049802f7c67a72daf6c3fb24c3defb1
Signed-off-by: Gaurav Jindal <gjindal@codeaurora.org>
If fence is signalled successfully, reset it to -1 to prevent it from
getting signalled again incorrectly.
CRs-Fixed: 3042511
Change-Id: I87f465508e9e626ad700f592478f253f179e9fe9
Signed-off-by: Anand Ravi <ananravi@codeaurora.org>
Currently, the shifted value we are providing to comp mask is
32-bit. The number of output ports have increased beyond 32,
and it requires for the correct bit to be set to report buf
done to context correctly. Extend the mask value calculation
to 64-bit.
CRs-Fixed: 2948116
Change-Id: I70e30fc44c178c04d0e962a31e4c48e3e5a13e75
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>