Add debugfs support to disable synx fence falling back
to dma sw fence via parameter "msm_vidc_disable_synx_fence"
Change-Id: I46b4833c2dfabec95f5ff34a0aef42043f8f6f5c
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
Add Synx V2 fences support to improve latency
in video decode usecases.
Change-Id: If21f8b65895364a804f8e03580b09c44b377c199
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
- Replace prior macros from downstream driver as these are now
defined in upstream V4l2 include files
Change-Id: I34dc063df0c2ca2194c115d310d7fe5026cd573e
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
use devm_add_action_or_reset() to register custom objects with devm.
This function wil invoke release callback during rmmod/remove sequence.
Change-Id: I87cf79741123bc3b1c624f8f44ba146deedaf32b
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
LTR is not correctly getting adjusted due to incorrect
goto statement leading to failure in premerge with
test_AVC_NV12C_3LTR_4Layers_Adjutment_Encode testcase.
Fix this.
Change-Id: Ieda4f33d6679f645c2eb349e8ddf1015a3814711
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
Replace prior macros from downstream driver as these are now
defined in upstream V4l2 include files
Change-Id: I7d1677cd7ef95c05219e043e0c78d29299036bed
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
In non secure case, ARP buffer will use CB0.
Change-Id: Id7bb33906d374f230b2054455e6efdc41e710abe
Signed-off-by: Chinmay Sawarkar <quic_chinmays@quicinc.com>
Resume video hardware if it is already power collapse
to SSR command else SSR command will not take effect.
Change-Id: I74def614a5a5174c052d14f47cecd1f1a619529e
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
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>
Add new metadata payload header flags to specify a particular
metadata is bitstream buffer oriented or raw buffer oriented.
This is required specially in decoder fence case where input
metadata done buffer will contain both input(bitstream)
buffer tag as well as output(raw) buffer tag.
Change-Id: I43c201c67639d8ab761971f2bc38fe9ec3e80b5f
Signed-off-by: Akshata Sahukar <quic_asahukar@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>