Enable only master sof, eof, epoch interrupts in dual tfe case.
Due to scheduling issues one tfe core interrupts will be delayed
that cause mis match of dual core interrupts events and eventually
cause the frame drops.
CRs-Fixed: 2796046
Change-Id: Ic16de3242e902bebaf79f83b9a332f0b7006908e
Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
This change takes care of a race which we see when we halt master
csid immediately and slave csid halt to follow. In some scenarios
after master csid halt, slave gives violation errors.
With this change we are first changing the halt mode of slave to
internal so that dependency on master is removed and
then issue halt commands to both master and slave.
CRs-Fixed: 2785781
Change-Id: Ib84a8c416e05a4ac54b6afad5c06017931d67a05
Signed-off-by: Shravya Samala <shravyas@codeaurora.org>
get sof timestamp called from tasklet which intern
should not take mutex as it may sleep. This change
removes the mutext lock from irq context.
CRs-Fixed: 2794250
Change-Id: If73acde1a4b931e4bfc3650638f7f977e18cb3ea
Signed-off-by: Vikram Sharma <vikramsa@codeaurora.org>
In case of TPG enabled, vbi value should be not be
consider in calculating epoch configuration because
vbi value passed is in cycles not in terms of lines
when TPG is selected.
CRs-Fixed: 2797039
Change-Id: Ia8870a8c2516fc2e0b3347ccb6b69db3774e33c1
Signed-off-by: Shravya Samala <shravyas@codeaurora.org>
In current code, rdi only context is upated after acquiring the
hw. In cases, where the first in_port comes as RDI only and second
in_port comes as Pix and RDI, IFE lite along with Full IFE will
be acquired. Context in question will not be marked as rdi_only.
This causes issues as the interrupts for Lite will be enabled only
if the context is rdi_only. Also, the rdi_only state machine will
not be activated.
To handle such scenarios, before acquiring the hw, we now detect
whether the context is rdi_only. Based on this, hw manager can
pass the information to CSID driver if LITE can be used or not.
Based on this, the reserve call can take decision inside CSID
driver. This information can also be used in advanced targets
where LITE has more capabilities and CSID driver needs more
information to make decisions while reserving hw.
This commit fixes some existing issues of releasing the
resources while handling the early exit from acquire call. It also
adds logging in case there is a failure in acquire because of non
availability of required resources.
CRs-Fixed: 2794147
Change-Id: I0591a83c23504eb67f3b87f17e172a9c67e7c82b
Signed-off-by: Gaurav Jindal <gjindal@codeaurora.org>
msm: camera: cdm: Fix dangling pointer issue
msm: camera: cdm: change work record to atomic variable
msm: camera: utils: Adding device type to track device handles
msm: camera: tfe: Reduce stack footprint during bw vote
msm: camera: req_mgr: Thread switch delay detection mechanisms
msm: camera: cdm: Avoid submitting BL if FIFO is full
msm: camera: tfe: check cdm hang in the tfe config timeout
msm: camera: req_mgr: Delay detection mechanism
msm: camera: cdm: Debug info in case of cdm page fault
msm: camera: isp: Max context reduction for TFE in isp driver
msm: camera: ope: Maintain current clock value during acquire
msm: camera: req_mgr: Limit CAM_ERR log in case of no empty task
msm: camera: cdm: Decrement write-count only after Bl commit
msm: camera: isp: Added CSID recovery mechanism.
CRs-Fixed: 2792394
Change-Id: I1c7a903ae15b572acf3f6318cda7394cb6549c8d
Signed-off-by: Tejas Prajapati <tpraja@codeaurora.org>
In case if calculated epoch is more than last
active line, then there is a chance that calculated epoch
is closer to EOF. This results in missing Epoch notification
at CRM.
Check if calculated epoch is greater than half of
last active line, then configure epoch at half the active lines.
CRs-Fixed: 2781565
Change-Id: Icb44d2e0e72b4ff36bd500ce51016cce418ff205
Signed-off-by: Shravya Samala <shravyas@codeaurora.org>
Add register info, initial QoS settings info to program
camera static settings for chipsets having camera v680.
CRs-fixed: 2792910
Change-Id: I8f054a8466035b8388ea84f3a50f562838611990
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
Signed-off-by: Jigar Agrawal <jigar@codeaurora.org>
Add qosgen shaping configuration setup. These parameters
will be tuned for every chipset along with other QoS
settings.
CRs-Fixed: 2787956
Change-Id: I2659192bd23f7f558554e18768e96020b929a145
Signed-off-by: Chandan Kumar Jha <cjha@codeaurora.org>
- Make CSIPHY 1.2.4 clock selection logic dynamic in order
to utilize the LOWSVS corner.
- Fix is_divisor_32_comp values for all PHY versions.
CRs-Fixed: 2792275
Change-Id: I66a12fe6f0e01d1a649559b9ebffff5a7c9308d5
Signed-off-by: Shravan Nevatia <snevatia@codeaurora.org>
Add irq controller support for the SFE core & bus interfaces.
CRs-Fixed: 2783797
Change-Id: I84c04a13fa26a9d040bab9e7ec7ba2d3061e1f76
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
While preparing config packet at HW layer,
we are setting Ope request timer even before
processing command buffer and IO cfg. This is
leading to false hw hand detection.
Expectation is Ope request timer has to
start after req is submitted to HW.
CRs-Fixed: 2788900
Change-Id: Idd1420b2ee1aed4bfe947cf5617bbec9b39147d3
Signed-off-by: Shravya Samala <shravyas@codeaurora.org>
Print the context id in the error statement when release_hw is
called in top state with no hw resources acquired.
CRs-Fixed: 2709537
Change-Id: Ic153cc7f92cfc15a56e7989b0337a4e051af4c43
Signed-off-by: Anand Ravi <ananravi@codeaurora.org>
In a edge case if there are only pd 1 devices then avoid reset
slot if last buf done req if last applied req. If rd_idx is equal to
last bufdone index then reset previous slot. Based on max PD in the
link calculate max retry attempt before triggering recovery to UMD.
Also fill trigger information during notify error.
CRs-Fixed: 2776184
Change-Id: Ifabf660df7861b78e7801dc7eebe0c5e71908e74
Signed-off-by: Wyes Karny <wkarny@codeaurora.org>
This change will help recovring from multiple CRC and ECC errors.
CRs-Fixed: 2715172
Change-Id: Ie76703a100b1b90b3bf8a9c47deac1a5d5654c00
Signed-off-by: Vikram Sharma <vikramsa@codeaurora.org>
Add support to dump the cdm core debug registers and CDM hang detect
support for better debugging purpose in case of cdm timeout at config
ife. Add a debugfs for CDM command buffer dump for cdm hang events.
Fix the possible NULL derefernce while dumping the cdm registers.
Turn on debugfs using following command in adb shell:
echo 1 >> /sys/kernel/debug/camera_isp_ctx/enable_cdm_cmd_buffer_dump.
CRs-Fixed: 2748715, 2782720, 2770565
Change-Id: Ibb9aa1d232d742ca1b6e64c16e9718bfc0bc8624
Signed-off-by: Jigar Agrawal <jigar@codeaurora.org>
In bubble cases and if not recovered, error logs causing
excessive logging issues. Change the error and warn logs to
rate limited in error bubble and apply failure cases.
CRs-Fixed: 2785070
Change-Id: Ia7268cfc7b672c24f3161cd65c53df5ee357e7ee
Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
Not calling unmap_hw_va if get_slot() fails causes a stale
entry in smmu CB. since get_slot failed, memmgr table
returns error and memmgr, umd doesn't keep info about this
map entry though smmu CB still has this mapping - This
causes any further map calls on the same 'fd' as smmu
return MAP_EXISTS but CSL bookkeeping doesn't have it.
CRs-Fixed: 2788167
Change-Id: Ibb1450f089b9f175ccdbcfb4f5ecc245a5539bd1
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
If MP limit fuse feature is enabled in DTSI then
read the fuse register to get information about maximum
allowed resolution. According to that restrict CSID acquire.
Also if only DTSI based max_width is enabled then restrict acquire
with maximum allowed width.
CRs-Fixed: 2785460
Depends-on: 3349044
Change-Id: If861289aebe2921183276780a086dfa1b1d5f372
Signed-off-by: Wyes Karny <wkarny@codeaurora.org>