Commit graph

287 commits

Author SHA1 Message Date
Shravan Nevatia
bf16c8a8e5 msm: camera: csiphy: Update common sequence for csiphy v1.2
Add a high-to-low transition in the CTRL0 register
during the common power-up sequence.

CRs-Fixed: 2580437
Change-Id: I66541d3d787fa2f161e5d8e647fb11c8075a1947
Signed-off-by: Shravan Nevatia <snevatia@codeaurora.org>
2020-01-30 03:32:39 -08:00
Gaurav Jindal
65f749c831 msm: camera: req_mgr: Link state check before process trigger workq
Due to scheduling delays, process trigger workq can be delayed.
In the meantime, link state can be reset to IDLE. This can cause
abnormal behaviour resulting in stability issues. Also, at the
time of apply  fail for flash, failed_dev is not updated.
This causes crash while notifying the error on link.
This commit prevents the execution of workq process trigger if
the link has been reset to IDLE state.
Also, failed_dev is updated if the apply for flash fails.

CRs-Fixed: 2572511
Change-Id: Iaea1e0a7a24afc9e408a1530a5875f6b6c41a45b
Signed-off-by: Gaurav Jindal <gjindal@codeaurora.org>
2020-01-30 03:30:48 -08:00
Camera Software Integration
b08e2b4099 Merge "msm: camera: sync: Enable driver registration with dtsi match" into camera-kernel.lnx.4.0 2020-01-17 13:21:56 -08:00
Suresh Vankadara
f1f6915ed4 msm: camera: ope: Fix OPE AHB voting issue
Initialize AHB voting variable in OPE acquire
to fix AHB voting issue for OPE.

CRs-Fixed: 2594541
Change-Id: I5bf8c0b1315a351abd80341100bdaf42333c4c24
Signed-off-by: Suresh Vankadara <svankada@codeaurora.org>
2020-01-16 17:45:48 +05:30
Ravikishore Pampana
12548365df msm: camera: common: secure camera fixes
Isp bus port secure mode not coming properly. Added proper
logic to get the bus port secure mode correctly.
Use secure iommu handle to get secure buffer for ope.
Add spin lock for tfe irq handler.
Use proper bw structure to copy the user send blob
data.

CRs-Fixed: 2594541
Change-Id: Icb8ecf869681c370efa084991505036f90a35065
Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
2020-01-16 17:45:47 +05:30
Tony Lijo Jose
832ac63b18 msm: camera: cci: Correct the queue size for cci version 1.2
Correct the queue size for cci version 1.2 as below,

1. Queue 0 size = 64.
2. Queue 1 size = 16.

CRs-Fixed: 2594541
Change-Id: Ifc9407427fe2bf0996c77dc00c5dfe7e5ba22140
Signed-off-by: Tony Lijo Jose <tjose@codeaurora.org>
2020-01-16 17:45:47 +05:30
Rishabh Jain
eb74ea19e4 msm: camera: ope: Fixed for IRQ mask and log printing
Adding fixes to set IRQ mask after reset and strings to
print OPE CPAS PATH enums.

CRs-Fixed: 2594541
Change-Id: I5873b8b0494623c36ca94edf7a26cc952fbb5e68
Signed-off-by: Rishabh Jain <risjai@codeaurora.org>
2020-01-16 17:45:46 +05:30
Rishabh Jain
130865bbdf msm: camera: ope: Avoid dead lock during flush
During flush OPE driver takes lock on OPE context and
calls the CDM flush, in which CDM notifies OPE for all
pending requests. If at the same time CDM is notifying
OPE for successful request that thread also tries to
take lock on OPE context. CDM also tries to takes lock
on CDM client in each notify call. Due to which,
dead lock is occurring.

So taking the lock on OPE context in OPE flush after
CDM flush.

CRs-Fixed: 2594541
Change-Id: I6ae9105d33a49a638141973cdd6a4a99621dc4c5
Signed-off-by: Rishabh Jain <risjai@codeaurora.org>
2020-01-16 17:45:46 +05:30
Rishabh Jain
bd1e6c2420 msm: camera: ope: Add fixes for probe, bus read and req_timer
As we are accessing hw version register during probe so calling
cpas_start and cpas_stop during probe.
Disabling the read clients which are not enabled for the request.
Resetting the req_timer when we receive the request from UMD.

CRs-Fixed: 2594541
Change-Id: I4a739fedbb498bd0c6b5b1e4cef38de3e4c722ed
Signed-off-by: Rishabh Jain <risjai@codeaurora.org>
2020-01-16 17:45:45 +05:30
Ravikishore Pampana
2613767f35 msm: camera: isp: Update bus width properly
Do not read the hw register to update the bus width.
Update register with stored height and user space given width
Update the tfe core irq command register after clear the registers.

CRs-Fixed: 2594541
Change-Id: I3fd9e0ce4319cd19b94e9c83fa63aab37f26027e
Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
2020-01-16 17:45:45 +05:30
Rishabh Jain
a90aec6cb4 msm: camera: ope: Corrected parameter for deiniting idle clock
Corrected the parameter needed to be passed in cam_ope_deinit_idle_clk.

CRs-Fixed: 2594541
Change-Id: Ibeb8558fd0724fff61f4a6ddadd3b3cf6a6b3ed2
Signed-off-by: Rishabh Jain <risjai@codeaurora.org>
2020-01-16 17:45:44 +05:30
Chandan Kumar Jha
594b0acba5 msm: camera: common: Remove division on uint64_t
Arm arch does not support dividing 64 bit integer, replacing it with
do_div call.
Fix variable type to work with both 32/64 bit arch.

CRs-Fixed: 2594541
Change-Id: I6b30f089bc998e98c7f2e20dc7fc11eedf6e6bc7
Signed-off-by: Chandan Kumar Jha <cjha@codeaurora.org>
2020-01-16 17:45:44 +05:30
Ravikishore Pampana
50fd3a70d1 msm: camera: tfe: Configure TPG hbi and vbi
User space will send HBI and VBI values for tpg. Configure the TPG
HBI and VBI values based on the user space given values.
If user space does not send then configure the default values.
Assign the isp context variable in the hw update data during the
tfe hw config.  Update proper comp group id for slave tfe.

CRs-Fixed: 2594541
Change-Id: I2771d3c663c0fcb58306952f161c11a473846f8d
Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
2020-01-16 17:45:43 +05:30
Trishansh Bhardwaj
d07eb2f941 msm: camera: cpas: Update the QOS settings for Bengal camera
Camera QOS settings are updated for Bengal target as per the
Recommendations of hardware team.

CRs-Fixed: 2594541
Change-Id: I068683445b0ced92c22a5bfdc56d936ca64385c3
Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
2020-01-16 17:45:43 +05:30
Trishansh Bhardwaj
cb2e8943da msm: camera: tfe: Add support to TFE driver
TFE is thin front end hardware that capture and process the
real time image. Support is added to enable the TFE
hardware.

CRs-Fixed: 2594541
Change-Id: I0ab2eff7924e9e01f6a0fcec772d3a7dda229b37
Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
2020-01-16 17:45:42 +05:30
Abhilash Kumar
4fddce3d69 msm: camera: cdm: Correct bitvalue for burst enable
The bit corrresponding to enabling burst is 4th bit.
This change fixes its value by assigning the same.

CRs-Fixed: 2594541
Change-Id: Ibeec3fd4460f9040255fa77f60fd565aed824c1c
Signed-off-by: Abhilash Kumar <krabhi@codeaurora.org>
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
2020-01-16 17:45:42 +05:30
Trishansh Bhardwaj
d907c2c7cb msm: camera: cdm: Add support for different CDM hardware
Different CDM hardware have different capability and registers.
With old register space, handling new features and operations
would have been a complex task. This change takes care of old
version of CDM and also changes the regspace to provide every
register's access to CDM.
This change further adds support for "arbitration" in case of
multi-context CDMs.
Exports reset functionality to clients, detection of CDM hang.
Flushing the CDM requests and dumping the FIFO content for all
contexts.
It also adds submitting "debug_gen_irq" as BL_done IRQ is only
an indication for availability of FIFO's. The AHB operations
are completed can only be known if the added "debug_gen_irqs"
gets executed and are received by the CDM.

CRs-Fixed: 2594541
Change-Id: I9846b1c5320ba652c5d3b7d83d616d2dabc843e1
Signed-off-by: Abhilash Kumar <krabhi@codeaurora.org>
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
2020-01-16 17:45:41 +05:30
Trishansh Bhardwaj
4aad75a2f9 msm: camera: ope: Support 32 bit arch
Update datatypes to work with 32 bit kernel.

CRs-Fixed: 2594541
Change-Id: I72d628152134770d7e09c3684443e25c47d9d1dc
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
2020-01-16 17:45:41 +05:30
Trishansh Bhardwaj
3bbd97274f msm: camera: cpas: Add support for Bengal camnoc
Bengal has different version of camnoc which requires
separate register space and camnoc interface changes.
This change adds the same.

CRs-Fixed: 2594541
Change-Id: I2a8e6cb8894444cb669ab1c4da5fa706dc6543ad
Signed-off-by: Rishabh Jain <risjai@codeaurora.org>
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
2020-01-16 17:45:22 +05:30
Trishansh Bhardwaj
2c76e695e3 msm: camera: isp: Move the ife hw manager resource to isp hw manager
Hardware manager resource is generic. Move the resource definition
to isp hw manager so that it can be used by other hw manager.
Remove the parent and child graph in the hardware manager resource
as it is not used. Use the common isp resource type everywhere.

CRs-Fixed: 2594541
Change-Id: I41d49af0855f3bd3768450d850b1284ff1e3fea9
Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
2020-01-16 15:01:40 +05:30
Jigarkumar Zala
376b7a3351 msm: camera: sync: Enable driver registration with dtsi match
Currently sync driver is independent from dtsi matching in order
to get it probe. Update the logic to make sure probe is getting
invoked if respective dtsi is present.

CRs-Fixed: 2590413
Change-Id: I69124e49d68e223d082521a9431cb7e8d846e8d7
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
2020-01-15 16:39:25 -08:00
Trishansh Bhardwaj
41533c5eb2 msm: camera: ope: Corrected batch mode and stripe for ope
Corrected the striping creation for non real time device.
Disabled the ope stripe base bus. Corrected the batch mode
creation for ope bus read.

CRs-Fixed: 2594541
Change-Id: I87adbab25b84d74162a6a8ce2db1412a6d9058d0
Signed-off-by: Rishabh Jain <risjai@codeaurora.org>
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
2020-01-15 14:38:50 -08:00
Trishansh Bhardwaj
a46b9bff7a msm: camera: ope: Add dynamic clock support
Dynamic clock and bandwidth support is added to
OPE.

CRs-Fixed: 2594541
Change-Id: Ib53ec47c7074f01f1bb55e17c97e5dacc550a129
Signed-off-by: Suresh Vankadara <svankada@codeaurora.org>
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
2020-01-15 14:38:25 -08:00
Trishansh Bhardwaj
12d9311463 msm: camera: ope: Add support to OPE driver
OPE is camera offline engine, support is added
to enable camera OPE hardware.

CRs-Fixed: 2594541
Change-Id: I65c69f5763d05abf265b645b09c95c55fb290182
Signed-off-by: Suresh Vankadara <svankada@codeaurora.org>
Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
2020-01-15 14:37:54 -08:00
Camera Software Integration
b7cfa8b7b0 Merge "msm: camera: config: Fix lahaina configuration" into camera-kernel.lnx.4.0 2020-01-13 20:42:35 -08:00
Camera Software Integration
0d6ddf1963 Merge "msm: camera: isp: Add hw version checks and dt match string" into camera-kernel.lnx.4.0 2020-01-13 20:38:30 -08:00
Camera Software Integration
c78ecfbf11 Merge "msm: camera: sensor: Add support fo multiple regulator sources" into camera-kernel.lnx.4.0 2020-01-13 20:37:42 -08:00
Camera Software Integration
4fe0b90fd0 Merge "msm: camera: ife: Sync master and slave IFE" into camera-kernel.lnx.4.0 2020-01-13 20:36:59 -08:00
Camera Software Integration
879fdfcb47 Merge "msm: camera: reqmgr: Change subdev register logic in camera req manager" into camera-kernel.lnx.4.0 2020-01-13 20:36:05 -08:00
Karthik Jayakumar
7b1dc04866 msm: camera: config: Fix lahaina configuration
Top-level Makefile doesn't export techpack configs.
As such, we must revert to generating our own conf.h file instead of
relying on autoconf.h. This has the side-effect of not allowing
IS_REACHABLE/IS_ENABLED macro's from working on configs enabled within
a techpack.

CRs-Fixed: 2584631
Change-Id: I9c35b305b81c5a6a6892ca87ace9f69192fcca5b
Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
2020-01-10 14:48:45 -08:00
Jigarkumar Zala
737f25e611 msm: camera: sensor: Add CPHY and DPHY bringup sequence
Add 3phase and 2phase_mission/combo mode sequence for
lahaina target.

CRs-Fixed: 2584631
Change-Id: Id2e207e46544e3f7d361803814eec725d28c3702
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
2020-01-09 16:21:59 -08:00
Mukund Madhusudan Atre
17bedd020e msm: camera: utils: Fix bus client register for icc
The common data containing src and dst bus IDs necessary
for bw voting is fed incorrectly. Fix passing of bus IDs
for registering bus clients to be valid values.

CRs-Fixed: 2584631
Change-Id: Ifee3a5ac345cf8df5cb775f5af633d8e146842d9
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
2020-01-09 15:56:10 -08:00
Mukund Madhusudan Atre
80ccf69ac9 msm: camera: reqmgr: Change subdev register logic in camera req manager
Due to deferred probes being dpendent on request manager to register
v4l2 subdev, failures are seen if probes are delayed. Change logic
for subdev registration to avoid failures due to delay.

CRs-Fixed: 2584631
Change-Id: Ia01d5d27ff6a6e6dbbb8e3b25b9aa53ac2fa9e38
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
2020-01-09 12:05:56 -08:00
Vishalsingh Hajeri
4a019e7828 msm: camera: uapi: Add flags for additional IFE HW
As part of acquire HW, kernel passes the IFE hw_idx to
userspace. This change will enable the capability to pass
the hw_idx of additional IFE HW enabled.

CRs-Fixed: 2582959
Change-Id: I689b99d021c8d0f3440e46d09a5dcda3daaefcfc
Signed-off-by: Vishalsingh Hajeri <vhajeri@codeaurora.org>
2020-01-08 16:50:53 -08:00
Vishalsingh Hajeri
423e6d195c msm: camera: ife: Sync master and slave IFE
Program hw_sync_sel field in core_cfg register
in case of dual ife.

CRs-Fixed: 2582959
Change-Id: I8a60cb06991738872c4caf0120ea21e5954d208a
Signed-off-by: Vishalsingh Hajeri <vhajeri@codeaurora.org>
2020-01-08 16:47:03 -08:00
Jigarkumar Zala
b8d55f649d msm: camera: sensor: Add support fo multiple regulator sources
Currently image sensor need single source of the regulator per
category. Some sensor needs extra analog voltage for the functionality,
which require to draw power from multiple voltage regulator sources.
This change extends supports to add multiple voltage sources for
analog voltage.

CRs-Fixed: 2584631
Change-Id: I2d76cfb0fb971758c0d596ffd543aa3926a8886d
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
2020-01-08 09:38:48 -08:00
Mukund Madhusudan Atre
eef5866053 msm: camera: isp: Add hw version checks and dt match string
The platform register requires dt match string for csid to probe
and correct cpas hw version is required for vfe to function. Add
dt match strings and hw version checks in csid and vfe.

CRs-Fixed: 2584631
Change-Id: Ieb2766fa6243bf4133b43f657a18aed7f04447be
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
Signed-off-by: Vishalsingh Hajeri <vhajeri@codeaurora.org>
2020-01-07 15:26:28 -08:00
Gaurav Jindal
7d7ed34560 msm: camera: isp: Change master slave combination for dual IFE
For some targets, there is a requirement to have the lower IFE
as master. Current implementation selects the higher IFE as
the master.
This commit changes the acquire logic to reserve the lower IFE
first and then the higher IFE as slave. This logic is for dual
ife use cases. For single IFE use case, acquire logic is not
changed.
Also, removes the hard coded check for master hw index
during the irq  handling. Stores the master hw index
in ife hardware manager context and check against it.

Change-Id: Ifd3a28e80a0a4d16e3d9278b7ed61290c620ec79
CRs-Fixed: 2582959
Signed-off-by: Gaurav Jindal <gjindal@codeaurora.org>
Signed-off-by: Vishalsingh Hajeri <vhajeri@codeaurora.org>
2020-01-02 17:37:20 -08:00
Camera Software Integration
76e75c6067 Merge "msm: camera: memmgr: Add support to disable DelayedUnmap" into camera-kernel.lnx.4.0 2019-12-23 23:04:39 -08:00
Jeyaprakash Soundrapandian
f7cf3781c0 Merge "msm: camera: common: Enable additional IFE hw" into camera-kernel.lnx.4.0 2019-12-23 21:27:38 -08:00
Pavan Kumar Chilamkurthi
74bb0d5750 msm: camera: memmgr: Add support to disable DelayedUnmap
Add interface to umd to give an option whether to
disable Delayed Unamp feature for a given buffer
mapping. DelayedUnmap is enabled by default if
umd doesn't explicitly asks for disable.

CRs-Fixed: 2580128
Change-Id: I66f87a9dbdfc4d9cecdc02eb24c1c670c9985cae
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
2019-12-23 09:26:54 -08:00
Mukund Madhusudan Atre
42021c8b76 msm: camera: common: Add device caps for full devices during probe
The v4l2 registration requires all devices that are not subdevs
to have device caps field to be non zero. Add device caps for
CRM and SYNC devices during probe.

CRs-Fixed: 2582994
Change-Id: I804e7bc00d597debc39d1f71259cf607c60ed069
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
2019-12-20 17:44:51 -08:00
Vishalsingh Hajeri
4265f73698 msm: camera: common: Enable additional IFE hw
Add IFE2 in UAPI header to return acquired IFE's
hw index to userspace.

CRs-Fixed: 2582959
Change-Id: I42de76453753245376f9a857d5a7de979da78333
Signed-off-by: Vishalsingh Hajeri <vhajeri@codeaurora.org>
2019-12-19 17:48:24 -08:00
Venkat Chinta
75f72b30a7 msm: camera: isp: Add header file changes
This commit adds header file changes for version 580 hardware.

CRs-Fixed: 2582959
Change-Id: I14497249db4a09c170215839a788c7477932ff35
Signed-off-by: Venkat Chinta <vchinta@codeaurora.org>
Signed-off-by: Vishalsingh Hajeri <vhajeri@codeaurora.org>
2019-12-18 20:35:35 -08:00
Mukund Madhusudan Atre
ebbfb4d5db msm: camera: cpas: Fix parsing of static bw values for ICC
The static values for AHB bw do not exceed u32, and using u64
parsing function to read it requires unnecessary device tree
changes. Changing parsing function for bw values from 64-bit
to 32-bit version.

CRs-Fixed: 2584631
Change-Id: Ie7c685fd40a0ee390f997fbe6cf3610c2209e3f1
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
2019-12-16 11:49:59 -08:00
Jigarkumar Zala
60da65a262 msm: camera: config: Add target config to enable compilation
Add lahaina configuration file to enable lahaina targets
compilation.

CRs-Fixed: 2569808
Change-Id: Idc85fd1d19acb4df4f09403d0e8171124489d68d
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
2019-12-04 23:20:01 -08:00
Elliot Berman
10891f6916 msm: camera: utils: Migrate SCM calls
Migrate secure world calls to qcom scm driver.

CRs-Fixed: 2564857
Change-Id: I8eb7498e4f80ff7ac1e22b7dcd364048e5338746
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
2019-12-04 19:53:56 -08:00
Karthik Jayakumar
50c8c09ead msm: camera: smmu: Move to ioremap APIs for using FW memory
When loading the camera FW, use the appropriate APIs
depending on the kernel version to map the FW region.

CRs-Fixed: 2564857
Change-Id: I2104b63b54bce799c8e44f36c49042de86f78c7e
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
2019-12-04 18:13:10 -08:00
Jigarkumar Zala
8a40a542fd msm: camera: common: Add support for icc and switching bus scaling
Add support for disabling bus scaling by moving bus driver
references from cpas to cam utils. The references can be
switched based on compile time flags in defconfig. Also, add
interconnect support which has bw voting based on source and
destination bus IDs.

CRs-Fixed: 2525881
Change-Id: I2a78523c0cad41503fe32aeb7bf4c794a26b16b6
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
2019-12-04 13:31:29 -08:00
Jigarkumar Zala
03b6c2140f msm: camera: common: Make platform register centralized
Currently camera modules platform registration/remove function
is being called as a part of module_init function individually.
Building camera as module, current infrastructure cannot support
it, as DLKM only support single module_init/exit function.
This change enables that support by combining all platform
entry/remove functions centrally. Also, remove all submodule
makefiles and combined into one root makefile in order to generate
single kernel object file to dynamically loading the kernel module
in case of DLKM compilation.

CRs-Fixed: 2569808
Change-Id: I59db3ed6cef60123e474db2f222c39836056bd6e
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
2019-12-04 12:33:01 -08:00