Commit Graph

1151 Commits

Author SHA1 Message Date
Govindaraj Rajagopal
e15f3afabd video: driver: add clock residency calculation support
Add logic to derive clock residency values for each
frequency levels.

Change-Id: Iadad29d2733cb083fce627999a31dd96475b73c1
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-12-30 23:42:16 +05:30
qctecmdr
4f297753f7 Merge "video: driver: implement memory_ops for upstream" 2022-12-27 10:58:45 -08:00
qctecmdr
d52a0b7f71 Merge "video: driver: Use iommu.h instead of dma-iommu.h" 2022-12-22 11:18:57 -08:00
qctecmdr
9b51939152 Merge "video: driver: set force mem and pheripheral on flags" 2022-12-22 11:18:57 -08:00
qctecmdr
2d442bba69 Merge "video: iris33: ensure AON spare register to become zero" 2022-12-22 11:18:56 -08:00
qctecmdr
075e5e2eab Merge "video: driver: refine core state machine" 2022-12-22 11:18:56 -08:00
tkashyap
bbcd8f6db3 video: driver: Use iommu.h instead of dma-iommu.h
Change-Id: If8e6e192e3320c36484e8348f3cb4215618867fb
2022-12-21 16:19:14 -08:00
Ankush Mitra
9e8ced68f3 video: driver: Pineapple CAP Database fix
Fix the issue in pineapple CAP Database for
SLICE_DECODE.

Change-Id: I1b4dc51bbb23634aa372eba35b18ca9b6caada2d
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2022-12-21 12:57:04 +05:30
Maheshwar Ajja
4716d7bc72 video: driver: set force mem and pheripheral on flags
Set mvs0c clock flags (force mem and pheripheral on).

Change-Id: I52380a30a4c74d9658f989377b5c77209cd8a33e
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
2022-12-19 14:58:23 -08:00
Dikshita Agarwal
d7e518a85c video: driver: implement memory_ops for upstream
- Implement upstream specific memory_alloc/map and
  memory_unmap/free API based on standard dma_alloc_attr()
  and dma_free_attr() APIs which allocates and map dma buffer.
- Combine alloc and map, unmap and free.

Change-Id: Ie85914beb72c3976febdc9e6a11c9199f2ea4192
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
2022-12-15 11:23:20 +05:30
Govindaraj Rajagopal
c4982fbf1a video: driver: refine core state machine
introduced core error state and added changes
to refine core state machine.

Change-Id: Ib3b94fd3798e902b7a6cfc5de45820558c89806e
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-12-15 07:59:45 +05:30
Govindaraj Rajagopal
3fd67c1274 video: driver: add error state support for core
Introduced MSM_VIDC_CORE_ERROR state in core. It supports
CPU_WATCHDOG and VIDEO_UNRESPONSIVE core substates.

Change-Id: I6aa700c37782d64d64cd132ea13009dda22cc8d1
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-12-15 07:56:38 +05:30
Maheshwar Ajja
520a2893df video: iris33: ensure AON spare register to become zero
Poll for AON spare register BIT(0) to become zero before
asserting XO reset from video driver to ensure CVP/EVA driver
is not asserting XO reset around the same time. Asserting
XO reset by both driver at the same time may result in
unpredictable behavior.

Change-Id: I71a0bd0175ef7701c9a855abbf3c2e741d937dfb
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
2022-12-14 11:09:32 -08:00
Ankush Mitra
da842a9f2f video: driver: Prepare dependency list without parent
Resolve upstream compilation issue.

Change-Id: Id0b08d0fc66291a415c966c90b804f9017790ef8
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2022-12-13 19:11:49 +05:30
Ankush Mitra
bd1cd4368b video: driver: Prepare dependency list without parent
This is change 2 of the Prepare dependency list without
parent change.
In this change we remove all parent information from
the CAP database.

Change-Id: Ie0b878050ae2d24e3c1a41cbd579ef0f19d42250
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2022-12-13 19:10:18 +05:30
Ankush Mitra
2c39d5b91b video: driver: prepare dependency list without parent
Prepare dependency list only using children.

Change-Id: Id79487825fed1f121821126589594b64820c85d3
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2022-12-13 18:50:13 +05:30
qctecmdr
36346afa9d Merge "video: driver: remove extra mvs0c clock reset" 2022-12-07 14:54:07 -08:00
qctecmdr
fdb319f335 Merge "video: driver: Move adjust/set control functions to common/platform.c" 2022-12-07 14:54:07 -08:00
qctecmdr
a06d7674ec Merge "video: driver: add core sub_state support" 2022-12-07 14:54:07 -08:00
qctecmdr
e82f7eb958 Merge "video: driver: add dma mask attribute to context banks" 2022-12-07 14:54:06 -08:00
Deepa Guthyappa Madivalara
832e9aefa8 video: driver: remove extra mvs0c clock reset
Remove addtional mvs0c clock reset which is not
required from power off sequence

Change-Id: I2077cb0ceee6451cd2d2af067ac8a7be3335dd16
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-12-06 11:44:31 -08:00
Manikanta Kanamarlapudi
92a44da54b video: update the set function for BASELAYER_PRIORITY
update the set function for BASELAYER_PRIORITY control.
with out this change, configuration is not set to firmware.

Change-Id: I57f01a8e02462ee9e8c221581043a8a70adbfcc5
Signed-off-by: Manikanta Kanamarlapudi <quic_kmanikan@quicinc.com>
2022-12-02 11:55:27 +05:30
Deepa Guthyappa Madivalara
bce7898377 video: driver: disable power collapse for video on pineapple
Disable video power collapse on pineapple chipset until
power collapse sequence is successful.

Change-Id: I2e7d0085e6d810fb79c2b1070c4bd498f443cfc8
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-11-23 11:02:06 -08:00
Govindaraj Rajagopal
9b0140cf03 video: driver: add core sub_state support
Introduce core->sub_state similar to inst->sub_state.

[1] pm_suspended - moved to this substate in case of PM suspend
[2] handoff - moved to this state after successful
    handoff_regulator call.
[3] fw_power_control - moved to this state in case of IFPC.
[4] power_enable - will track core power_on/power_off status.
[5] page_fault - used to rate_limit fault logs.
[6] cpu_wd - indicates hw fired wd interrupt.
[7] video_unresponsive - moved to this state if sync cmd fails.

Change-Id: Iceb65cf404fd93aff7846860b0276307e4eab570
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-11-23 10:53:11 +05:30
Ankush Mitra
1df215f203 video: driver: Move adjust/set control functions to common/platform.c
Move adjust/set control functions to common/platform.c as part of
upstream effort.
This is part 1 of the change.

Change-Id: I8c440740fe785b5b052c4d44963ea34c21419fa4
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2022-11-22 23:01:17 +05:30
qctecmdr
1addb15e58 Merge "video: driver: use macros to prepare enums & string arrays" 2022-11-21 18:59:48 -08:00
qctecmdr
bc62a68248 Merge "video: driver: check for regulator support before initializing" 2022-11-21 18:35:21 -08:00
Dikshita Agarwal
8030903f1e video: driver: add dma mask attribute to context banks
Upstream driver doesn't support context bank address ranges,
so add dma mask attribute to context bank to specify address
range for upstream driver.

Change-Id: I09191b500006d6c7abf364fbfa22377b480a4b4d
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
2022-11-21 10:52:41 +05:30
Deepa Guthyappa Madivalara
2113a7a8c5 video: driver: add support for vidvsp cache
Adding support for vidvsp cache

Change-Id: I0ef58106a9a5eab55ab01e4eaaf77d19d9b3a984
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-11-18 16:22:09 -08:00
qctecmdr
ce13ce72cc Merge "video: driver: enable xo reset clock" 2022-11-18 14:45:37 -08:00
qctecmdr
b8fd5b594f Merge "video: driver: Remove slice interface capability" 2022-11-17 23:45:10 -08:00
Govindaraj Rajagopal
2eda86592a video: driver: use macros to prepare enums & string arrays
video driver is maintaining multiple tables based on enum
name pair. So this mapping might go wrong if new entry is
inserted in different position.

So added logic to prepare enums & static const char* arrays
using macros. So compiler will take care of creation and
maintaining order.

Change-Id: Id3669cf3ce150b3ababb84dce18326220f41d88d
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-11-17 21:35:27 +05:30
Darshana Patil
2638c201a8 video: driver: enable xo reset clock
Enable xo reset clock since it is enabled
from clock driver.

Change-Id: Ica38616f514c9f2288a60fbfb3e0a3683c154b15
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-11-16 18:07:44 -08:00
Darshana Patil
54f71aa5ab Revert "video: driver: disable SW power collapse temporarily"
Re-enable sw power collapse.
This reverts commit 2dd5543fed.

Change-Id: If6cd275551fcb1d3de1fa75b9cace9aa6649c7fa
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-11-16 18:05:43 -08:00
qctecmdr
2d17637ec0 Merge "video: driver: add resets in power off sequence" 2022-11-16 08:10:29 -08:00
qctecmdr
b9bfdbe7b8 Merge "video: driver: Enable MMRM support in pineapple" 2022-11-16 08:10:28 -08:00
Deepa Guthyappa Madivalara
2dd5543fed video: driver: disable SW power collapse temporarily
Disable SW_PC temporarily

Change-Id: Ief82b9b273d6a4c7383e0aab73c2a5da428c203a
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-11-15 14:45:16 -08:00
Anshul Agarwal
a51bbd6445 video: driver: Remove slice interface capability
Removed slice interface capability for Kalama and taro.

Change-Id: Id7e90eff7457d004d70ba885af81a33e1feb7bb3
Signed-off-by: Gaviraju Doddabettahalli Bettegowda <quic_gdoddabe@quicinc.com>
2022-11-15 10:00:09 -08:00
Maheshwar Ajja
d934279ad4 video: driver: add resets in power off sequence
Add assert and deassert axi and mvs0c resets to
avoid video hardware unresponsive issues due to
multiple power collapse sequence execution.

Change-Id: I25ec99eab6b50111161ec9486ea1155bee63f7fc
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
2022-11-11 18:59:14 -08:00
qctecmdr
b1bf3f1148 Merge "Video Driver: fix frame freeze for HEVC 10bit all intra decoding" 2022-11-11 13:15:32 -08:00
qctecmdr
fe64bbf604 Merge "video: driver: power collapse for last session close" 2022-11-10 16:38:38 -08:00
qctecmdr
c8709784bb Merge "video: driver: Add TURBO and LOWSVS_D1 clocks" 2022-11-10 16:38:38 -08:00
qctecmdr
b2ea40aba5 Merge "video: driver: update definition same as prototype" 2022-11-10 16:38:38 -08:00
qctecmdr
7313e91c52 Merge "video: driver: misc changes to be inline with upstream" 2022-11-09 21:54:22 -08:00
qctecmdr
b33fc5110e Merge "video: driver: fix compilation issues with mainline kernel" 2022-11-09 21:54:22 -08:00
qctecmdr
643d2e2304 Merge "video: driver: Increase FW timeout to 4sec for debug logging" 2022-11-09 21:54:22 -08:00
Deepa Guthyappa Madivalara
9db29e4eda video: driver: add assert and deassert reset functions
- Add assert and deassert reset control functions to
  update power off sequence in pineapple chipset
- Rename clock names to match with clock macros

Change-Id: Ic6dc0daac8110597bfcb02cceba94d2b97548723
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
2022-11-07 18:31:55 -08:00
Deepa Guthyappa Madivalara
9a591ca5af video: driver: update definition same as prototype
Update function definition to be same as prototype to
avoid compile error

Change-Id: I92be0d96ce1e95e858cca6e5cad8de0564a60e5b
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-11-07 14:32:28 -08:00
Ankush Mitra
b35fde25c4 Video Driver: fix frame freeze for HEVC 10bit all intra decoding
1. Allow turbo for HEVC 10bit all intra decoding;
2. Add 25 percent extra to VSP cycle for HEVC
   10bit all intra decoding;

Change-Id: I794b2a896f7e9444c8979abdb15b8e673a5270ee
Signed-off-by: Zhongbo Shi <quic_zhongbos@quicinc.com>
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2022-11-07 09:01:17 -08:00
Ankush Mitra
dc39a04e6e video: driver: follow vcodec power collapse seq for PC failure case
if PC fails for 10 times then video driver is treating that situation
as fatal and doing force core_deinit(), in this case firmware will not
follow vcodec power_collapse sequence and if there any pending
transaction from any session it will cause smmu_fault during next
firmware_boot sequence. Added change to perform vcodec power_collapse
from power_off_iris3_hardware() incase of core_deinit due to PC failure.

Change-Id: I45e32985d87b5cc882c4f96f77d1cabc796e6ba0
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2022-11-07 07:59:33 -08:00