Update power calculation to avoid low framerate or
frame drop issues
Change-Id: Ice306a44d4ea8242d965c0e5d03edffc0f5e0f8b
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
Add support to enable ring buffer for enc intermediate
bin buffer to improve encoding performance.
Change-Id: Ifbf50cb48278c62c09a20bc7626a3b6288813830
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
Align hfi property and memory file to pick interface changes
for encoder ring buffer support
Change-Id: Icde4cdffe5275d416c51c36e562bb832027b0fa1
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
Introduce a control for client to enable or disable
csc. Disable csc for 10-bit encoding based on color format.
Change-Id: Ia49324332ce9b05b6f1a1283fa758638a8cc3ab8
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
1. Move DPB_TAG_LIST from ouput meta port to
input meta port;
2. Remove meta_max_reorder_num_frame;
Change-Id: I1783ee9cdb1092f90706dc485d247c51f36a9a65
Signed-off-by: Zhongbo Shi <quic_zhongbos@quicinc.com>
1. Move DPB_LIST subscription on input
port instead of output port.
2. Move decoder port PSC and properties
to platform data.
Change-Id: I5711e0ba915ebe4136f64d1440ae331b787f4d61
Signed-off-by: Zhongbo Shi <quic_zhongbos@quicinc.com>
Align hfi property and registers file with to pick synx fence
related interface changes
Change-Id: I19e5cce4d67f2f1eeacf917f9e688d2bb20f6585
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
In msm_vidc_open() create_singlethread_workqueue() is failing,
so msm_vidc_close() is called and i.e attempting to de-initialize
some uninitialized structures and resulting into stability issues.
So handle msm_vidc_open() failure with in same api, instead of
calling msm_vidc_close() and re-organize deinit sequence.
Change-Id: I843cf07eaf18f4ea764842fd1c87b78d115580d3
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
In case of decode batch IDR frame can impact
the bitrate based clk scaling.
To tackle this use avg filled len in case
of decode batching.
Change-Id: I1b2701857118bfa1f1a4fd0c0498ee016c02e8d5
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
If there is any system error from firmware then driver will
remove instance from core->instances.list.
msm_vb2_detach(unmap)_dmabuf() returning failure because
get_inst_ref() returning NULL as the instance was removed from
in core->instances.list, but instance is still alive and buffers
can still be detached(unmapped). Skipping detach(unmap)
buffers resulting in below warning when the buffer's final
dma reference is removed by v4l2 framework (dma_buf_put(fd))
after msm_vb2_detach(unmap)_dmabuf() functions.
msm_dma_buf_freed: DMA buffer ffffff8884ebe600 destroyed with
outstanding iommu mappings
Call trace:
msm_dma_buf_freed+0x130/0x334 [msm_dma_iommu_mapping]
qcom_sg_release+0x30/0x50 [qcom_dma_heaps]
dma_buf_release+0x48/0xa8
__dentry_kill+0x178/0x268
dentry_kill+0xc4/0x110
dput+0xa4/0x110
__fput+0x170/0x260
____fput+0x18/0x28
task_work_run+0xc0/0xe8
Eventually when client closed the session, driver will try to
cleanup the missing buffers and hence driver calls unmap buffers
which is resulting in below list_del corruption issue as dma_buf
including sg_list was already removed for it
msm_dma_unmap_sg_attrs: (ffffff8916a92c00) was never mapped
WARNING: CPU: 2 PID: 2258 at drivers/iommu/msm_dma_iommu_mapping.c:377
msm_dma_unmap_sg_attrs+0x9c/0x1e4 [msm_dma_iommu_mapping]
Call trace:
msm_dma_unmap_sg_attrs+0x9c/0x1e4 [msm_dma_iommu_mapping]
qcom_sg_unmap_dma_buf+0xc0/0xf0 [qcom_dma_heaps]
dma_buf_unmap_attachment+0x48/0xa0
msm_vidc_dma_buf_unmap_attachment+0x2c/0x80 [msm_video]
msm_vidc_destroy_buffers+0x510/0xb74 [msm_video]
put_inst+0x158/0x3fc [msm_video]
msm_vidc_close+0xe4/0x16c [msm_video]
v4l2_release+0x7c/0x108
__fput+0xe4/0x260
____fput+0x18/0x28
task_work_run+0xc0/0xe8
list_del corruption. prev->next should be ffffff8891db3c90,
but was ffffff8916a92c10. (prev=ffffff8916a92c10)
As we know instance will always be alive in
msm_vb2_detach(unmap)_dmabuf() function, we can safely
remove get_inst_ref() to avoid skipping detach(unmap)
calls to avoid list_del corruption issues.
Change-Id: If292a39ab1cde17da3cbb634370b6ff6692e496a
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
New bandwidth and frequency calculation functions
for lanai.
Change-Id: I0ec4a74bc24598628fe94a6ebbe9df5e3cb71a9c
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
New hfi buffer flags to send memory region information to firmware.
Change-Id: I3a320622d0ed01a5e583dbeceb2648a57f618a66
Signed-off-by: Chinmay Sawarkar <quic_chinmays@quicinc.com>
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>
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>
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>
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>
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>
In assert xo reset failure case, count increment and
usleep are skipped resulting in indefinite while loop.
Correct the conditions to avoid looping indefinitely.
Change-Id: I38fae272f0c7c676e1454e1fb0a8bfee860ea2f0
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
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>
Blur pixel fmt parent check is specific to HEVC codec.
Fix this to avoid session failure.
Change-Id: I0323627383d56d1382e17f7a4b2cbb11edd6bf46
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
Set substate PM_SUSPEND even if
video core was already power collapsed.
Change-Id: I15740d8e44fe89c6b34c0412dca1064539cdac35
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
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>