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>
New bandwidth and frequency calculation functions
for kalama.
Change-Id: Iaca0be832c42e00bb7404f7cfbac5bbf03427144
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
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>
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>
In case of watchdog interrupt, power off sequence will
get called which will make intr_status to 0 due to which
enable_irq gets called from isr_handler irrespective of
watchdog interrupt. Now during power up sequence again
when the enable_irq gets called, it will through
"Unbalanced enable for irq" error.
Added a fix for the same.
Call trace ->
enable_irq+0x9c/0xf8
__power_on_ar50lt+0x2d4/0x320 [msm_video]
__load_fw+0x92c/0x1368 [msm_video]
venus_hfi_core_init+0x64/0x468 [msm_video]
msm_vidc_core_init+0x158/0x4bc [msm_video]
msm_vidc_open+0x90/0x804 [msm_video]
Change-Id: Ic675d7540ef029e530a8cd5b87fb97f72e72057f
Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
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>
update buffer size only for film grain content.
Change-Id: Ia9230d36ef0c917723fdb1eea82adfb8df3b3413
Signed-off-by: Manikanta Kanamarlapudi <quic_kmanikan@quicinc.com>
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>
Restrict all intra encode support to 4k@30 fps from 4k@60 fps.
Change-Id: If77d391ccfe4453fc37de369a9ca5923a39c9c26
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
- 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>
Update the buffer sizes for h264 codec in IRIS2 variant to
align with updated buffer calculation for IRIS3.
Change-Id: Ic211cdc88bb173f790ac11dad68ad248ed4a3f34
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Remove support for dynamic layers and bitrates for taro similar
to other platforms.
Change-Id: Ic316d9d566507ae924cff7a1ded10bcdd1f115e4
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
[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>
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>
Add support to allow 5 LTR count as per new
requirement.
Change-Id: Ic839ea61ae8dfe21bd8891f0f0dbaf26506d84ec
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
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>
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>
- 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>
- remove support of dynamic layer change for CBR
- remove support of layerwise bitrate
- any dynamic layer change request ignored without error for CBR_*FR cases
- layerwise bitrate is mapped to cumulative bitrate
Change-Id: I96c70fabd3c2bf94ce989b9e94620c166892b8e6
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
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>
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>