Commit Graph

32 Commits

Author SHA1 Message Date
Ayush Kumar
e01a63cc4f msm: camera: isp: Add TPG mux select logic in CPAS
Add TPG mux select logic in CPAS. To select form which TPG CSID should
get the data, TPG_MUX_SEL register has to be programmed. This change
adds the logic to write this register on CPAS driver.

CRs-Fixed: 3081144
Change-Id: I86560f802a04e88ceca4efa276e853029d8417d3
Signed-off-by: Ayush Kumar <quic_ayushkr@quicinc.com>
(cherry picked from commit 323f7225a0e814b2be33cd89109ae6b3ac8c3490)
2023-11-07 23:54:46 +05:30
Vijay Kumar Tumati
0c0096b72e msm: camera: cpas: Add support for dynamic FD port config
Configure IFE FD OUT port to secure or non-secure
based on whether the user space wants to use
hardware FD or software FD for secure camera
use cases.

CRs-Fixed: 3572316
Change-Id: I8f5f1506a01ba2aaf9c533edbdc64c5c6250cb2f
Signed-off-by: Vijay Kumar Tumati <quic_vtumati@quicinc.com>
(cherry picked from commit db520c5c3fb5e585eceb1d4bc4d58a0b799b2c08)
2023-09-22 09:34:43 -07:00
Karthik Dillibabu
f910aa0b4f msm: camera: common: Partial Camera Support
This change creates a sysfs entry(subparts_info) which
has info about number of IFEs, IFE-LITEs, SFEs & CUSTOM,
whose values are populated in their respective drivers.
Also, validates whether a particular IFE, SFE and CUSTOM
is supported or not. Based on this, probe of IFE, SFE and
CUSTOM drivers will happen accordingly.

CRs-Fixed: 3482745
Change-Id: Iff6e79a7793b14b1f368f215020617f10dbd4bb5
Signed-off-by: Karthik Dillibabu <quic_kard@quicinc.com>
2023-06-26 14:00:13 -07:00
mingpan
400dfd20c5 msm: camera: cpas: Dump cpas vote info when CRM dump request
Dump cpas vote info when CRM dump request, just like
cam_req_mgr_dump_state_monitor_info.

CRs-Fixed: 3441303
Change-Id: Ic5c2e671a27593ef1c25fa650c2148dd88c9968f
Signed-off-by: mingpan <quic_mingpan@quicinc.com>
2023-06-01 16:42:10 -07:00
Sokchetra Eung
44411e0ede msm: camera: cpas: Update CPAS for v980
In CPAS v980, CAMNOC is split into RT and NRT. Camnoc RT and NRT each
has separate register base. Camnoc RT is used by TFE, IFE lite, RT CDM.
Camnoc NRT is used by OFE, IPE, ICP, JPEG, NRT CDM. There are also two
IRQ lines for CPAS: RT and NRT IRQs.

Add CPASTOP SBM IRQ for RT/NRT, static QOS NOC settings for RT/NRT,
Cesta, and others in the header file for v980. CPAS registers two IRQ
lines and handles the incoming (RT/NRT) IRQs based on the IRQ data for
each IRQ. CPAS SOC looks for IRQ identifier property in CPAS node DT
to classify the IRQ type.

Global Camnoc info variable and qchannel variable now contain separate
info for RT/NRT or combined info.

Add NRT reg base for camnoc NRT base. Add TFE UBWC Encode error.

CRs-Fixed: 3403163
Change-Id: I3044c6314fa65c4e486bfa1bff2e828ac5e285cd
Signed-off-by: Sokchetra Eung <quic_eung@quicinc.com>
2023-04-21 22:36:24 -07:00
Soumen Ghosh
64c1b33278 msm: camera: cpas: add camera cesta VCD level dump
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>
2023-01-03 14:58:22 -08:00
Mukund Madhusudan Atre
b2def29ddc msm: camera: common: Add support for cesta based clk scaling
On chipsets having cesta hw block support, for cesta supported clks
clk frequency can be changed during veritcal blanking based on
CSID DRV events. For this to happen, camera clients need to setup
high and low clock votes through hw clients. Use corresponding clk,
crm APIs to setup high, low clk frquencies and do channel switch
to apply newly set rates. Clients can also set clk frequency through
sw client which will set the floor. This feature helps in saving
power for usecases where vertical blanking is high such as
Fast Shutter usecase.

CRs-Fixed: 3294948
Change-Id: I1bcf650b439991a23b2a0f0f9a5162bdcd60dc64
Signed-off-by: Mukund Madhusudan Atre <quic_matre@quicinc.com>
Signed-off-by: Pavan Kumar Chilamkurthi <quic_pchilamk@quicinc.com>
2022-12-14 11:06:09 -08:00
Mukund Madhusudan Atre
434b591240 msm: camera: common: Update headers for new target
Some definitions need to be updated based on device tree
configuration for new target. Add appropriate changes to
support it.

CRs-Fixed: 3244380
Change-Id: I919facfe319ca56477e594b782dcd2ad659cb193
Signed-off-by: Mukund Madhusudan Atre <quic_matre@quicinc.com>
2022-09-15 16:36:48 -07:00
chengxue
666c7b9cd7 msm: camera: cpas: Smart QoS parameters upgrade
Add tuning parameters for smart QoS parameter upgrade.

CRs-Fixed: 3248165
Change-Id: I3cb4de370310923abca7ad3d5cb05cacb11bd03f
Signed-off-by: chengxue <quic_chengxue@quicinc.com>
2022-09-15 16:36:42 -07:00
Mukund Madhusudan Atre
65878f05bb msm: camera: common: Add support for DRV config
Add DRV config blob handling for programming required
registers per request. Also, add debugfs entry for
disabling DRV feature from ife hw manager. Update
existing BW voting logs to reflect DRV vote level info.
Add support for communicating with rsc device upon update
in MNOC BW. Also, update BW voting logic in cpas to accommodate
DRV voting to interconnect framework.

CRs-Fixed: 3065551
Change-Id: I8ac4820b7af824f5ff46614ae6804001deca9b01
Signed-off-by: Mukund Madhusudan Atre <quic_matre@quicinc.com>
2022-06-09 12:07:29 -07:00
Karthik Anantha Ram
0b86e7f627 msm: camera: cpas: Enable camnoc slave error irq
Enable camnoc slave error irq to identify address decode
errors. Also change the camnoc irq clear logic. The change
also avoids dumping error logger info. Also remove
any error logging in client callbacks for slave error
if the client intends to not handle it.

CRs-Fixed: 3175797
Change-Id: Iec2c0c3b50a52a4c61ce2d5f6f263327625a8267
Signed-off-by: Karthik Anantha Ram <quic_kartanan@quicinc.com>
2022-05-05 08:36:23 -07:00
Pavan Kumar Chilamkurthi
a32a315e54 msm: camera: cpas: Enable icp clk for qchannel handshake
For some chipsets, qchannel handshake needs icp clk to be
enabled. Add support to enable icp clk while qchannel
handshake by adding as optional clk in cpas node. Whether
to enable icp clk or not is controlled through workaround
list populated for each chipset.
Add mechanism to retry qchannel acceptance if the first
auto try has failed, by explicity writing 0x1 to qchannel
ctrl register. This will bring back qchannel to good state.

CRs-Fixed: 3131613
Change-Id: Ie39a9789b2eb1bf9c0f6adb26fe6d6e1823eff70
Signed-off-by: Pavan Kumar Chilamkurthi <quic_pchilamk@quicinc.com>
2022-02-24 22:33:13 -08:00
Ridhi Shah
858bba3104 msm: camera: common: Add path for ubwc and linear
Add consolidated IFE path for ubwc and linear.

CRs-Fixed: 3048249
Change-Id: Idbf03c20b734e6a3ec5034ccd6450f8659e0e94f
Signed-off-by: ridhshah <ridhshah@codeaurora.org>
2021-11-01 13:15:33 -07:00
Sokchetra Eung
ba664cddff msm: camera: common: Append workq name in log
Append workq name in workq delay detect API to identify
which workq is scheduled late. Create workq name macros for
cci and cpas to pass to workq delay detect API.

CRs-Fixed: 2994927
Change-Id: Iebc14520b918272e92b59c900de5fe17f38a2406
Signed-off-by: Sokchetra Eung <eung@codeaurora.org>
2021-07-26 17:43:37 -07:00
Pavan Kumar Chilamkurthi
88987924f2 msm: camera: cpas: Add support for SmartQoS feature
This feature dynamically calculates priority lut low
values for real time write NIUs whenever there is a
change in real time bw vote on any of these NIUs and
write the registers.

CRs-Fixed: 2976535
Change-Id: I5a1433436da87915b20584d3002648699c985998
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
2021-07-08 00:52:52 -07:00
Pavan Kumar Chilamkurthi
83d6037d44 msm: camera: cpas: Increase cpas max clients, tree nodes
Increase number of cpas clients macro value and mx number
of tree nodes value to accommodate new clients on v780.

CRs-Fixed: 2948116
Change-Id: I9e3fb0b0a562eb92032405903fe0c30eeacd0dc0
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
2021-06-08 00:01:38 -07:00
Mukund Madhusudan Atre
a9c89d1f41 msm: camera: cpas: Move camnoc register offsets to header
Currently, camnoc buffer fill level register offsets are part
of cpas monitoring. Register offsets keep changing between
targets which would bring more conditionals. Make cpas monitoring
generic by moving register offsets to header. Also, the reg values
will be read in a buffer, and it can be controlled what offset
needs to be read, by changing status in header to be enable/disable.
Also, move camnoc fill level printing to CPAS for when we need only
buffer fill info.

CRs-Fixed: 2841729
Change-Id: I05425b4466d33dbef80eb8a0a1b5e974a6965600
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
2021-05-06 23:18:41 -07:00
Alok Chauhan
4461467cc3 msm: camera: cpas: Add mechanism to check camnoc idle status
Qchannel interface is used to ensure camnoc is idle. This needs
to be check before camera core power collapse and after camera core
power on sequence to make sure camera hw blocks are in proper state.

CRs-Fixed: 2847646
Change-Id: If9dbd980c2e8e983ac973f91e3d1ed132719c395
Signed-off-by: Alok Chauhan <alokc@codeaurora.org>
2021-02-24 23:31:56 -08:00
Haritha Chintalapati
9d4ea638ef Merge "msm: camera: cpas: Update cpas dt parsing" into camera-kernel.lnx.5.0 2021-01-25 14:13:35 -08:00
Camera Software Integration
3d82bb320f Merge "msm: camera: common: Migrate dt-bindings to techpack" into camera-kernel.lnx.5.0 2021-01-20 16:23:04 -08:00
Karthik Jayakumar
8b54992c6f msm: camera: cpas: Update cpas dt parsing
cpas dt parser updates to reduce maximum acceptable node ids.

CRs-Fixed: 2835738
Change-Id: I8e88a0cba0a1bc9367cbfd1ae81f4ac1e9f916a8
Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
2021-01-20 10:48:53 -08:00
Pavan Kumar Chilamkurthi
d1ff12582e msm: camera: cpas: Add more cpas log event triggers
Add cpas log events to capture IPE, BPS, JPEG frame submit,
frame done events and ipe, bps clk update events and
IFE EPOCH event.

CRs-Fixed: 2851720
Change-Id: I94d1023b8878934e50f21a1a55fe3ce561cce869
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
2021-01-13 01:30:52 -08:00
Karthik Jayakumar
c69ede622c msm: camera: common: Migrate dt-bindings to techpack
To support external module compilation on Waipio, camera dt-bindings header
files need to be moved out of kernel SI and into the camera-kernel vendor SI.
This is to maintain seperation between the two SI's.

CRs-Fixed: 2835738
Change-Id: I8d63b48b6d406ed7b4a07f3bd4f1721ecd2dd0b0
Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
2021-01-11 10:11:37 -08:00
Pavan Kumar Chilamkurthi
38b660d92f msm: camera: cpas: Enhance cpas dump with more info
1. Add more triggers to save cpas state info. IFE EOF, ReqBufDone
2. Save camnoc fill levels in each cpas log state
3. Print camnoc QoS settings in cpas state dump for debug
   purpose. Though these are static settings, printing will
   help in making sure correct settings are applied.

CRs-Fixed: 2814346
Change-Id: Ic3018c5f7fdeaac3a123c6d046eb5e6a34a675e7
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
2020-11-07 17:55:24 -08:00
Pavan Kumar Chilamkurthi
f4ec43b748 msm: camera: cpas: Add more debug information in cpas dump
Enhance cpas state dump to get more information about
bandwidth and clock status. This additional state dump
can be enabled using debugfs.

adb shell "echo 1 > /sys/kernel/debug/camera_cpas/full_state_dump"

Traverse through all bw tree nodes and print info in each node.
Print current clk frequencies of all clocks that cpas enables.
Read rpmh bcm status registers to understand mmnoc clk freq.
Add cpas monitor to save important info whenever clients
notify with an event. This monitor info is printed in cpas
state dump.

CRs-Fixed: 2754299
Change-Id: Ib9007091f7e34127f1ca92498e2537b2a06887cb
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
2020-08-25 02:29:26 -07:00
Pavan Kumar Chilamkurthi
5cb16c01ed msm: camera: cpas: Add support for custom QoS selection
Add cpas interface to allow clients or usecase to select
different QoS settings based on requirement. Selection
API must be called before camera hw powers up.

CRs-Fixed: 2687917
Change-Id: Ie524fcd6131d7c42288d0d734a7cdf6b9fcb92b7
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
2020-06-09 14:13:57 -07:00
Mukund Madhusudan Atre
b7235bc92c msm: camera: ife: IFE debug enhancement for overflow debugging
In many error cases it is required to know the
bandwidth applied on axi ports and camnoc axi
clock rate values. Added cpas api to print the
current axi bus votes, camnoc axi clock and ahb
vote level.This api can be called for isp errors
such as bus overflow, pxl overflow cases.
On RDI overflow printing last applied IFE clock,
dumping the CAMNOC fill-level registers to know
the pending and queued transactions, SOF EPOCH
and EOF timing to know exactly at what time the
RDI overflow came, Width and height of specific
Write master.

CRs-Fixed: 2623885
Change-Id: I92a9097efe9f6726748ec27ca39dd51c8c6de1b6
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
2020-04-20 11:13:36 -07:00
Gaurav Jindal
1ed310412a msm: camera: cpas: Add support for camnoc based voting
For some targets, it is needed to vote for camnoc clock
as there is no CAMNOC AXI clock source in camera domain.
Voting is done with the bus drivers and it calcultates
the clock rate.
This change adds support for camnoc based voting.

CRs-Fixed: 2571273
Change-Id: I38a4fa8d40892b6dfe7e925b6368eb259132615d
Signed-off-by: Gaurav Jindal <gjindal@codeaurora.org>
2020-02-05 14:24:01 -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
Karthik Anantha Ram
6761d7b872 msm: camera: cpas: Change to enable bus scaling for AHB
This change scales BW voting with src clock voltage corner.
Adds a debugfs to disable this scaling.

CRs-Fixed: 2531856
Change-Id: I266e34ca81f635954e60648366bcc4792f90fdb6
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
2019-09-25 14:29:41 -07:00
Karthik Anantha Ram
b8e35c3397 msm: camera: common: Update AHB vote for camera drivers
As part of cpas start, all drivers will now request for
LOW_SVS as opposed to SVS. The drivers also scale the AHB
vote based on the corresponding HW's src clk voltage.

CRs-Fixed: 2507919
Change-Id: I7fd35e9dd298deb1603812f39d50e4e9390b3aac
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
2019-09-16 15:11:42 -07:00
Jigarkumar Zala
05349feaa2 Camera: Bring over camera driver changes
Bring over camera driver changes as of msm-4.19
commit  5a5551a7 (Merge "msm: camera: reqmgr: Fix CRM
shift one req issue").

Change-Id: Ic0c2b2d74d1b3470c1c51d98228e312fb13c501a
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
2019-07-08 10:24:55 -07:00