In current targets composite groups are statically mapped
to vfe output ports but still we assign them everytime we acquire
the device, here we map comp_grp to vfe_out_port while vfe_out_init
this will render use of list for used and free_comp_grp useless
thereby saving memory and time as we need not acquire comp_grp
on every acquire and release on every release.This also fixes a
memory leak in sfe deinit.
CRs-Fixed: 3321317
Change-Id: I8f4da9e1fd25b123e0081fdefa5ab99e0758c6b3
Signed-off-by: Ashish Bhimanpalliwar <quic_abhiman@quicinc.com>
This change is to validate session and device handle.
Also, checks whether the device handle belongs to
correct session handle or not.
CRs-Fixed: 3350595
Change-Id: If1e06607ccaa99d3288ddca6a263d54315b14caa
Signed-off-by: Karthik Dillibabu <quic_kard@quicinc.com>
Fix a compilation error that occurs if CONFIG_CAM_TEST_IRQ_LINE flag
is enabled.
CRs-Fixed: 3366261
Change-Id: I83ef05bb51fe74e669dbcd6315ce916e9cf5c14a
Signed-off-by: Sokchetra Eung <quic_eung@quicinc.com>
When allocating FW uncached region the output structure has
a few unused fields, initialize them to 0.
CRs-Fixed: 3366228
Change-Id: I9b5b122a5f80c127c0eb8b707fda2323e59bec97
Signed-off-by: Karthik Anantha Ram <quic_kartanan@quicinc.com>
Fill out ICP v2 query cap request from UMD based on v2 query
cap structure. With the query cap info, UMD can know which HW
devices (IPE/BPS/OFE/...) supported by the ICP v4l2 device.
CRs-Fixed: 3364226
Change-Id: I775f6248a4971b47eb7f832e2e6b6b3d3ab9952e
Signed-off-by: Petar Ivanov <quic_pivanov@quicinc.com>
Signed-off-by: Sokchetra Eung <quic_eung@quicinc.com>
The change updates new query cap v2 structure for ICP
to relay new HW related info to userland. The new query
cap structure provides detailed info on the HW cores being
supported and handled for each instance of the ICP driver.
The change also adds provision to obtain hw fence info as part
of query caps.
CRs-Fixed: 3374291
Change-Id: Iebd80bd87a495887b09296a09bea36c3690b9f92
Signed-off-by: Karthik Anantha Ram <quic_kartanan@quicinc.com>
Add switch case to handle query cap v2 ioctl, and add query cap
v2 hw mgr intf function pointer to handle query cap v2.
CRs-Fixed: 3364267
Change-Id: I1f992982f8d06755c977839ee61ee450306d65a5
Signed-off-by: Petar Ivanov <quic_pivanov@quicinc.com>
Signed-off-by: Sokchetra Eung <quic_eung@quicinc.com>
Problem Description:
For Spectra880, SFE pxl pipeline is getting bypass for FS use-case.
Solution:
For Spectra880, Don't Bypass the SFE pxl pipeline for FS use-case.
Prior to Spectra880 the entire SFE pxl pipeline was bypassed for FS
use-case.
CRs-Fixed: 3376488
Change-Id: Ib7b060e12ec34e733929cf002c5cda6a55cc58b3
Signed-off-by: Chandan Kumar Jha <quic_cjha@quicinc.com>
Update CSIPHY header for SM8650.
CRs-Fixed: 3335789
Change-Id: I79fed4330cd36e2b1464b9d5667678187a163cd1
Signed-off-by: Wang Kan <quic_wkan@quicinc.com>
camera-kernel:
3e2a39f Merge "msm: camera: isp: Dump sfe bus info when handling sfe hw err" into camera-kernel.lnx.dev
8a59ef5 Merge "msm: camera: isp: Add support for SFE bus mini dump" into camera-kernel.lnx.dev
3cc484d Merge "msm: camera: sensor: Clock change for init settings" into camera-kernel.lnx.dev
50f9e3f Merge "msm: camera: sensor: Removing some dead code" into camera-kernel.lnx.dev.
Change-Id: I94ebe9a2cec4bf27d9680771ef768f38ad32b6f3
Signed-off-by: Savita Patted <quic_spatted@quicinc.com>
Removing some dead code, the power info and
soc private are never used after assignment.
CRs-Fixed: 3376960
Change-Id: I0038cad043ea53ffd18d711f338e094ff0f919cc
Signed-off-by: Depeng Shao <quic_depengs@quicinc.com>
This change allows the tpg clock configuration to be directly picked
up from the get_tpg_clk_level function.
CRs-Fixed: 3376775.
Change-Id: I9a9ef232fd7f0c79c3f6683dc7838555dd02e3f2
Signed-off-by: Shivi Mangal <quic_smangal@quicinc.com>
Dump sfe bus info when handling sfe hw err.
CRs-Fixed: 3334217
Change-Id: Ibdde623ccf42d5213f2865695efaa64fa14536ac
Signed-off-by: Stark Lin <quic_starlin@quicinc.com>
This change Adds support for SFE bus info dump while mini_dump.
CRs-Fixed: 3334217
Change-Id: Ie7072880ce8c962656c5755f0fb375d674b84684
Signed-off-by: Stark Lin <quic_starlin@quicinc.com>
This change allows the tpg hw register configurations to be directly
programmed from the tpg xml file. The regsettings array can be configured
with the right configurations for the required mode, if regsettings are
not provided in regsettings array. The settings are derived from the
stream configurations and global configurations.
CRs-Fixed: 3289930.
Change-Id: If44678475986efc0f26c334f5db4f9c59cd6873b
Signed-off-by: Shivi Mangal <quic_smangal@quicinc.com>
Modifying the info/error/dbg logs in hw mgr, context and hfi
layers to spit out relevant info to determine which ICP device
is running the execution.
Change type defination of hw_dev_type to enum in local instances in
functions and the field of hw ctx struct.
CRs-Fixed: 3361905
Change-Id: Ib50208eaf243c50678d07845461c750b36d19bf9
Signed-off-by: Petar Ivanov <quic_pivanov@quicinc.com>
Signed-off-by: Sokchetra Eung <quic_eung@quicinc.com>
e5d0daa Merge "msm: camera: common: Resolve potential data race conditions" into camera-kernel.lnx.dev
070e31a Merge "msm: camera: common: Removing dead code from the camera driver" into camera-kernel.lnx.dev.
Change-Id: Iedd18884586ea505b6c46df4c669aa795b02db44
Signed-off-by: Savita Patted <quic_spatted@quicinc.com>
Add locks before shared variable access in request manager, csid driver
and smmu appi files to avoid data race conditions.
CRs-Fixed: 3348931
Change-Id: Ifa860bf157047f23bd2bc460a16e9405de0d5c83
Signed-off-by: Dharmender Sharma <quic_dharshar@quicinc.com>
Removing dead code from the camera driver code. While dumping camif reg
we were incorrectly updating register offset value, which is leading to
dead code. This change will fix those offset values.
CRs-Fixed: 3330567
Change-Id: I04b39bec05141f4dd194f73cc7423164817fec1d
Signed-off-by: Yash Upadhyay <quic_yupadhya@quicinc.com>
Mutex is the synchronization primitive used in synx, which
can sleep. Holding the spin lock and invoking synx APIs could
deadlock the system. Release spin lock and invoke synx driver.
CRs-Fixed: 3365172
Change-Id: I01291fdd96df772f4cb1d87a44d79dd4a62fdc26
Signed-off-by: Karthik Anantha Ram <quic_kartanan@quicinc.com>
camera-kernel:
be50d13 Merge "msm: camera: sensor: BIG endian write for QTime" into camera-kernel.lnx.dev
ca9b1d4 Merge "msm: camera: isp: Read bus consumed addr at bus irq top half" into camera-kernel.lnx.dev
7f4db48 Merge "msm: camera: isp: Handling override of error code variable" into camera-kernel.lnx.dev
6129f5f Merge "msm: camera: isp: Add new outports for Spectra v980" into camera-kernel.lnx.dev.
Change-Id: Ifa3a9ddd0cad183e7d3b02761d6fe5e31a4c75bd
Signed-off-by: Savita Patted <quic_spatted@quicinc.com>
Move the read of consumed addr to bus top half, as the tasklet
may delay and cannot readout the consumed addr in time.
CRs-Fixed: 3362499
Change-Id: I9742b117f433df6275ae5058d62e77ffce1f9a3f
Signed-off-by: chengxue <quic_chengxue@quicinc.com>
DW9784 needs Big endian type when QTime is written
into registers.
CRs-Fixed: 3359195
External Impact: No.
Change-Id: I6c141de255dbedb933ca5529f5ce4562d93a7c3a
Signed-off-by: Yulei Yao <quic_yuleiy@quicinc.com>
This change will help to give information on camera cesta current clk
operating level.
CRs-Fixed: 3327242
Change-Id: I0422d557985b1044fcd9bab2ce201b8c21e4e295
Signed-off-by: Soumen Ghosh <quic_soumeng@quicinc.com>
External dependency has been reverted, change not ready.
This reverts commit b76d66be06cb035886ddebbf7671e02c93fdd1af.
CRs-Fixed: 3317248
Change-Id: If82504f1eb22b1c908d08d256f3b4c4cbad60bc9
Signed-off-by: Li Sha Lim <quic_lishlim@quicinc.com>
In current code, composite done values are stored as shift values and
converted to mask in the driver logic. This causes redundant operations
in the code as the masks are static values.
This commit replaces the bit shift values with masks so that they
can be converted at the compile time thereby reducing some CPU
execution cycles during start and IRQ handlers.
CRs-Fixed: 3321317
Change-Id: I1507b4dbee4855ad866f69ed16b0b9dafe0a4e99
Signed-off-by: Gaurav Jindal <quic_gjindal@quicinc.com>
Due to i2c driver remove call return value changed from int to void
from 6.1 kernel version.
CRs-Fixed: 3366233
Change-Id: I81713fdd65a53af37b0b9c573407587755bc1bae
Signed-off-by: Soumen Ghosh <quic_soumeng@quicinc.com>
During probe, each hw mgr register as a client to HFI layer and share
the handle to icp core layer to book keep. HFI register routine searches
for a free hfi slot to dynamically allocated hfi info struct and returns
a client handle to the caller. During open sequence, HW mgr is required to
initialize the hfi using the handle obtained from the registering in boot
up. Upon unregistering, the hfi slot and the hfi info memory is freed.
Hw mgr layer can invoke the existing hfi interfaces by passing hfi handle
to fetch the right hfi info. With this change, each hw mgr can
independently run on one HFI to interact with FW.
Add support in enabling OFE PC and config OFE UBWC in hfi layer, and parse
OFE UBWC config values from DT.
CRs-Fixed: 3338951
Change-Id: Iec2358fef124e9c169d06df79ce31b65a9b80d40
Signed-off-by: Sokchetra Eung <quic_eung@quicinc.com>
Add OFE device allocation and initialization. Verify number
of DT listed devices with cpas capability. Create common
sets of command types for IPE/BPS/OFE. Refactor the current usage
of IPE/BPS device interfaces to scale to n number of devices
including OFE. Add support for OFE functionality: acquire/
release, init/deinit, PC/Resume, get gdsc, clock update,
OFE HFI commands and message handlers.
CRs-Fixed: 3337784
Change-Id: I94c9bd21cf21dead6733c7cd6b86e343e86169de
Signed-off-by: Sokchetra Eung <quic_eung@quicinc.com>
Add OFE stream type(rt/nrt/semi-rt) to be used for hw acquire,
add ofe setting/update opcode for preparing hw update, add
ICP/OFE dev type for query cap v2 usage, and a new macro
to define the max number of device types supported by ICP instance.
Remove usages of deprecated max macros - CAM_ICP_RES_TYPE_MAX
and CAM_ICP_DEV_TYPE_MAX in the driver.
CRs-Fixed: 3336554
Change-Id: Icf27958571f6e31896539d0cd692e0e7a67c5cd8
Signed-off-by: Sokchetra Eung <quic_eung@quicinc.com>
To enable multiple HW MGRs, static icp hw mgr is an array
and no longer a singleton object. The hw managers share the
same function routines; thus, routines that assume singleton
hw mgr are changed to support input parameter hw mgr. Different
hw mgr has separate sets of hw ctx, clk/bw info, workq, iommu hdl
, hw intf, WD, debugfs, locks, etc. So, They can run simultaneously
and independently of one another.
Before hw mgr initit/deinit, map corresponding icp subdevice to
hw mgr based on cell index in DT.
Each hw mgr has its own debugfs that can be interacted by users
independently of others.
CRs-Fixed: 3336534
Change-Id: I1ac5e244c5219c2e8f0c46f44e9a8ba6da16cf99
Signed-off-by: Sokchetra Eung <quic_eung@quicinc.com>
UMD can send packet with READ or CONFIG opcode with req
id 0, if we update the last updated req for every packet,
then the res info may be updated incorrectly. This change
updates the last updated req only when there are valid
res info updating.
CRs-Fixed: 3359553
Change-Id: Ia08ccf7683b87378d00a5ae41e189a70a01cc0fc
Signed-off-by: Depeng Shao <quic_depengs@quicinc.com>
Adds support for new mink call to configure secure
camera sessions. This new mink call takes in additional
parameters to support the new domain-id based
security scheme. The additional parameters are in the
form of csid_hw_idx_mask, cdm_hw_idx_mask and
vc_mask. These are in addition to the existing PHY idx
and CPHY/DPHY lanes info.
The introduction of this new mink call deprecates the
existing SCM call used to service secure camera sessions.
What this means is that on all subsequent versions of this
driver, all secure camera sessions will be serviced by this
mink call, which is able to accommodate older and newer targets,
and their programming of different register sets.
This design enables the cam_csiphy_notify_secure_mode
wrapper to remain the same, with the underlying mink call
made in the cam_compat layer, depending on camera driver
version.
CRs-Fixed: 3317248
Change-Id: I575f4b85097c81f047f398216d0190b249e6b200
Signed-off-by: Li Sha Lim <quic_lishlim@quicinc.com>
Add support to map global sync and hw mutex memory for ICP.
Share the region information with FW over GP registers.
CRs-Fixed: 3351015
Change-Id: Ie7a6af40ffd922ae89d64205787e3c656a007c49
Signed-off-by: Karthik Anantha Ram <quic_kartanan@quicinc.com>