Gráfico de commits

1033 Commits

Autor SHA1 Mensaje Fecha
Vedang Nagar
17bc01b78f video: driver: Move clk/qcom.h to external reseource file
Move qcom.h header file from resources.h to resources_ext file.

Change-Id: I81735461f093fe724a51d66538be1cc562fc0e24
Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
2023-02-26 22:26:16 +05:30
qctecmdr
a7db37426e Merge "video: driver: Add new hfi buffer flags" 2023-02-24 21:15:31 -08:00
qctecmdr
95eccc81e8 Merge "video: driver: add stop cmd allow checks inside state handler" 2023-02-23 18:24:11 -08:00
Chinmay Sawarkar
ed46ad9aec video: driver: Add new hfi buffer flags
New hfi buffer flags to send memory region information to firmware.

Change-Id: I3a320622d0ed01a5e583dbeceb2648a57f618a66
Signed-off-by: Chinmay Sawarkar <quic_chinmays@quicinc.com>
2023-02-23 12:01:25 -08:00
qctecmdr
8df204443f Merge "video: driver: remove config dependencies" 2023-02-23 08:10:06 -08:00
qctecmdr
e613fa6855 Merge "video: driver: set PM_SUSPEND in power collapsed state" 2023-02-22 18:33:42 -08:00
qctecmdr
37f24ba2cc Merge "video: driver: Revise encoder port configs" 2023-02-22 13:29:31 -08:00
Govindaraj Rajagopal
ab6770c11f video: driver: add stop cmd allow checks inside state handler
use state specific checks inside state_handler instead of
relying global msm_vidc_allow_stop function.

Change-Id: I83d81aa0f840412a4c61f15673a6246f0f84be7f
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-02-22 21:05:18 +05:30
Govindaraj Rajagopal
a6e521d629 video: driver: add start cmd allow checks inside state handler
use state specific checks inside state_handler instead of
relying global msm_vidc_allow_start function.

Change-Id: I04182ee3b63fa9044acf4f40adc47ea97eaa7538
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-02-22 20:52:07 +05:30
Govindaraj Rajagopal
4afdecc4fd video: driver: add streamon allow checks inside state handler
use state specific checks inside state_handler instead of
relying global msm_vidc_allow_streamon function.

Change-Id: I67948831612ebb33cdd12a2e9f8561b6095e9433
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-02-22 20:03:52 +05:30
Govindaraj Rajagopal
3ba2cb9ed1 video: driver: add reqbuf allow checks inside state handler
use state specific checks inside state_handler instead of
relying global msm_vidc_allow_reqbufs function.

Change-Id: Iaf7f23e4e2ef9b714e3d4c2900c2753d74150fd1
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-02-22 20:01:03 +05:30
Govindaraj Rajagopal
373880e521 video: driver: add s_fmt allow checks inside state handler
use state specific checks inside state_handler instead of
relying global msm_vidc_allow_s_fmt function.

Change-Id: I92af08e4cd5d49f763c5a2d381af86eb10a4c061
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-02-22 20:00:01 +05:30
Govindaraj Rajagopal
c3c85e9653 video: driver: remove config dependencies
remove all conditional compilation in video driver.
With this change, all files willbe always compiled
and will be available in final kernel object file.

Change-Id: I9843c246e23bd1ee4fb8918e5cfa840e2defd432
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-02-21 14:33:41 +05:30
Ankush Mitra
e96ab4ac79 video: driver: set PM_SUSPEND in power collapsed state
Set substate PM_SUSPEND even if
video core was already power collapsed.

Change-Id: I15740d8e44fe89c6b34c0412dca1064539cdac35
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2023-02-17 19:57:04 +05:30
Vedang Nagar
3e353fd5ff video: driver: Move _clock_set_flag() implementation
Move _clock_set_flag() function implementation from
resource.c to resource_ext.c file.

Change-Id: I4b977c7f840b94da578fcaac53b8fdc4bba86fca
Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
2023-02-17 19:51:24 +05:30
qctecmdr
6b5255c60d Merge "video: driver: introduction of new debug print" 2023-02-16 12:30:49 -08:00
qctecmdr
f48a9e7429 Merge "video: driver: add sanity check for iommu domain" 2023-02-16 12:21:31 -08:00
qctecmdr
e30350da93 Merge "video: driver: introduce substate allow table to populate allow_mask" 2023-02-16 12:21:31 -08:00
Ankush Mitra
908ab6358b video: driver: introduction of new debug print
Introduce d_vpr_hs to print both VIDC_HIGH or
VIDC_STAT log.

Change-Id: Ie7bfa8df033b30689eca6ad6a4637978730eadf7
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2023-02-16 11:26:25 +05:30
Govindaraj Rajagopal
9e5429a77d video: driver: introduce substate allow table to populate allow_mask
get allow_mask from substate allow table and decide to update/ignore
based on that mask.

Change-Id: I1cd465069717561aeadeeba7241128bd450d4933
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-02-15 10:24:06 +05:30
Dikshita Agarwal
c1d99709ca video: driver: fix __set_clk_rate for upstream
In downstream, driver vote for VIDEO_CC_MVS0_CLK_SRC which
needs a multiplication factor of 3 to be applied to
required freq while on upstream we vote for branch clk
i.e. VIDEO_CC_MVS0_CLK hence this multiplication factor is
not needed.

Change-Id: I43131558b3882da303cfaa9bdb5d76080a83fc42
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
2023-02-13 15:56:36 +05:30
qctecmdr
f0b5f5dd65 Merge "video: driver: disable 5 LTR support" 2023-02-11 12:13:30 -08:00
qctecmdr
99d3bd665c Merge "msm: vidc: enable DCVS for non realtime sessions" 2023-02-09 17:47:32 -08:00
qctecmdr
a7d368d03f Merge "video: driver: fix video node open before probe issue" 2023-02-09 17:47:32 -08:00
Zhongbo Shi
e65a251443 video: driver: Revise encoder port configs
1. Revise to config encoder RAW port with buffer actual
aligned width and height in pixels to firmware;
2. Client also needs to config aligned input port
width and height to driver;
3. Driver must config encoder RAW port crops;
4. Client also needs to config encoder input port crops;

Change-Id: Idb85036df9a72e50239ddb46039ef1995b7f0689
Signed-off-by: Zhongbo Shi <quic_zhongbos@quicinc.com>
2023-02-08 15:14:06 +08:00
Darshana Patil
f123b6eece video: driver: fix incorrect initialization of dmabuf
Reinitialize dmabuf pointer to NULL only after
dma_buf_put has been called on that buffer.

Change-Id: I05e8c1d0901438bc39a9bf9faeed11e228cd7675
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2023-02-07 12:07:33 -08:00
qctecmdr
ff5f9d8998 Merge "video: driver: state handling code movement" 2023-02-07 11:22:13 -08:00
Darshana Patil
ed80204a9e video: driver: add support to configure colorinfo via control
- introduce control to set colorspace. client will use this
  to set private color info.

Change-Id: I0099ef1525f4562d3be3a6e518d046fe5b9ef894
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2023-02-06 13:09:17 -08:00
qctecmdr
49f99eba76 Merge "video: driver: resolve subsystem restart failure" 2023-02-06 10:11:50 -08:00
Manikanta Kanamarlapudi
454e91b014 msm: vidc: enable DCVS for non realtime sessions
- enable dcvs for non-realtime sessions (both encode/decode)
- enable input queuing rate power scaling for non-realtime encoder

Change-Id: Ie0fe2723837dbfc1cb63b693fc657f2d8df7c573
Signed-off-by: Manikanta Kanamarlapudi <quic_kmanikan@quicinc.com>
2023-02-06 10:06:54 +05:30
Govindaraj Rajagopal
e318864d75 video: driver: fix video node open before probe issue
[1] In upstream side, udev is attampting to open video
nodes(video32 & video33) immediately after creation.
But by that time probe might not completed and i.e
resulting to NULL ptr dereference during open() call.

[2] component_match_add_release() must be called only
for video subdevices(contextbanks), but due to OPP table
more entries getting added into component_match table.
So master device bind is never getting invoked and probe
sequence is never getting completed.

Uploaded change to address above mentioned issuses.

Change-Id: I8d2e8fb5644da7076f5f99feda9365629e9130fd
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-02-03 21:03:59 +05:30
tkashyap
faf2b173fe video: driver: disable devm_pm_opp_attach_genpd
Change-Id: Id09b49b3ff2b7b1c960314776dd91360913482d8
Signed-off-by: Tanya Kashyap <quic_tkashyap@quicinc.com>
2023-02-01 16:30:06 -08:00
Ankush Mitra
f1771aae41 video: driver: resolve subsystem restart failure
Allow streamoff from msm_vidc_vb2_queue_deinit after
errors to flush out the pending buffer in driver
in order to avoid v4l2 framework printing below warning.

videobuf2_common: driver bug: stop_streaming operation
is leaving buf in active state.

Call trace
__vb2_queue_cancel+0x214/0x288
vb2_core_queue_release+0x28/0x5c
vb2_queue_release+0x18/0x28
msm_vidc_vb2_queue_deinit+0x40/0x118 [msm_video]
msm_vidc_close+0x7c/0x144 [msm_video]
msm_v4l2_close+0x44/0x164 [msm_video]

There is a deadlock if driver acquires inst lock
in msm_vb2_stop_streaming, because this function
will be called from msm_vidc_close which already
acquired the inst lock. Hence, acquire inst lock
in msm_v4l2_stramoff instead of msm_vb2_stop_streaming.

Change-Id: Iec4c0e416a8a2705af28dbd5138f25d9f3016d12
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2023-02-01 12:18:42 +05:30
Akshata Sahukar
654e6bb55d video: driver: Add support to allow 5 LTR count
Add support to allow 5 LTR count as per new
requirement.

Change-Id: Ic839ea61ae8dfe21bd8891f0f0dbaf26506d84ec
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2023-01-30 13:08:35 -08:00
Govindaraj Rajagopal
c175e36454 video: driver: state handling code movement
state handling changes were spread across multiple files.
So re-arrange all state related handling changes into
msm_vidc_state.h/.c file.

Change-Id: I3826daa678d1e2b5ce7e74380d465e70b1b824c6
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-01-30 10:57:22 +05:30
qctecmdr
0884f5a04a Merge "video: driver: restructure video state machine" 2023-01-28 00:56:41 -08:00
qctecmdr
54c8d7570d Merge "video: driver: add power domain and opp table support for video" 2023-01-28 00:56:41 -08:00
qctecmdr
fd07f2cafd Merge "video: driver: fix array out of bounds exception" 2023-01-27 11:25:16 -08:00
Govindaraj Rajagopal
7c365bdb94 video: driver: restructure video state machine
Re-structure video driver statemachine to use
event handler. Added event handler support for
event states.

Added change to handle event depending on the
underlying state implementation.

Change-Id: Ib55c12c6cadc4d780797a5aee75d5ea61e95c94f
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-01-27 16:31:23 +05:30
Snehal Bhamare
a8dce0e07e video: driver: fix array out of bounds exception
Check array bounds before writing to array to resolve
array bounds exceeded issue.

Change-Id: If3bf593b7126b2e4d567d35dc08e4598e80900fe
Signed-off-by: Snehal Bhamare <quic_sbhamare@quicinc.com>
2023-01-24 15:26:08 -08:00
Darshana Patil
68df0645ec video: driver: add support to send aon region via HFI_MMAP_ADDR
- add support to intialise device region by reading data from
  platform to resources.
- add support for iommu_map and iommu_unmap apis.
- allocate a 4K page and send this address through
  HFI_MMAP_ADDR register.
- map AON region, send virtual address and size as payload.

Change-Id: I5aa26593309a220c5de62836e432c1bd5a63ba1d
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2023-01-20 10:49:32 -08:00
qctecmdr
954b0ff6f5 Merge "video: driver: add support for pineapple V2 devices" 2023-01-18 13:36:08 -08:00
qctecmdr
60fee2a157 Merge "msm: vidc: Increase min o/p buffer count for AV1" 2023-01-18 13:36:08 -08:00
qctecmdr
db62f9374a Merge "video: driver: Modify buffer_stats logic" 2023-01-18 13:36:08 -08:00
Govindaraj Rajagopal
ab9b1a112b video: driver: add power domain and opp table support for video
Added changes to support generic power domain and opp table.
This is an alternative for downstream regulator framework.

power domain can be enabled using below dtsi entries.

power-domains =
    <&videocc MVS0C_GDSC>,
	<&videocc MVS0_GDSC>,
	<&rpmhpd SM8450_MXC>,
	<&rpmhpd SM8450_MMCX>
power-domain-names =
    "iris-ctl", "vcodec", "mx", "mmcx";

Power domain handles willbe parsed at driver side using below api's.
   - dev_pm_domain_attach_by_name()
   - devm_pm_opp_attach_genpd()

devm_pm_opp_attach_genpd() provides consumer virtual device handles
and i.e linked to core->dev using device_link_add().

MXC, MMCX rails wilbe powered up by scaling desired rate using
dev_pm_opp_set_rate().

Change-Id: I3d73434cb772078f031aec7cadc2d42ab930edd0
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-01-18 16:44:23 +05:30
Maheshwar Ajja
f150010edb video: driver: use reset control api with kernel version 6
Use reset control acquire/release api's with kernel version >= 6
as they were not exposed in previous kernels.

Change-Id: I2968fc50d77948c7f1a6f55be31360ad03971415
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
2023-01-17 11:50:14 -08:00
Deepa Guthyappa Madivalara
d8f253e2c0 video: driver: add support for pineapple V2 devices
Adding support for pineapple V2 devices

Change-Id: I9088895ff92ca34ee3b46bd99e0d068b478e083d
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2023-01-13 16:40:26 -08:00
Darshana Patil
ea34534af0 video: driver: update copyright markings to 2023
update copyright markings to 2023 in all files.

Change-Id: I6842d56c4a8fff6a7a93d0c1d4bc049041297b02
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2023-01-13 14:58:17 -08:00
qctecmdr
bc0e8274bf Merge "video: driver: add clock residency calculation support" 2023-01-06 10:25:30 -08:00
Darshana Patil
a0082a4c81 video: driver: amend xo reset clock as shared resource
Use devm_reset_control_get_exclusive_released() instead of
devm_reset_control_get() to get the reset control of video_xo_reset
clock as it is shared reset clock between eva and video drivers.
Use reset_control_acquire() before assert and reset_control_release()
after de-assert video_xo_reset clock to avoid eva driver operating on
it in parallel.

Change-Id: I4936ed7a4556bb56d4b28546084fc877080308ef
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2023-01-05 09:58:30 -08:00