提交線圖

1078 次程式碼提交

作者 SHA1 備註 日期
Ankush Mitra
e450d8eaa3 video: driver: remove capability pointer
Remove capability pointer and allocate
memory with max cap size.

Change-Id: I7f53e3b35439f91b72f057695b6e63f71bfecc0a
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2023-04-05 11:58:48 +05:30
Darshana Patil
7affdd1031 video: driver: adjust properties during reqbufs
- Adjust v4l2 properties during reqbufs of
  master port. Set properties to firmware
  during streamon of master port.
- Calculate buffer size and buffer counts
  during reqbufs call of each port.
- This is done to recalculate buffer sizes
  and counts after client has configured
  all the controls and updated size and
  count can be returned to client before
  streamon.

Change-Id: Ifc7ee36456d5d4e1c862952de581af3d7ae126b0
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2023-04-03 10:09:31 -07:00
qctecmdr
50631f4a43 Merge "video: driver: misc synx fence changes" 2023-04-01 19:10:25 -07:00
qctecmdr
84cf6e7976 Merge "video: driver: add streamoff handling in close state" 2023-03-31 13:59:09 -07:00
qctecmdr
547e7c4988 Merge "video: driver: add try_fmt allow checks inside state handler" 2023-03-31 13:59:09 -07:00
qctecmdr
93646b1a4d Merge "video: driver: enable memory tracking in stats handler" 2023-03-31 13:59:09 -07:00
Akshata Sahukar
be793d6501 video: driver: misc synx fence changes
- Make synx fence debugfs support as module parameter
- Update sync fence related register device addresses to
  eliminate memory holes
- Enable hw fence config parameter to enable compilation
  of hw fence definitions in display driver
- Handle synx fence queue memory error in control status
  register.
- Fix msm_vidc_debug and msm_vidc_fw_dump module params
  ro accept values during module instantiation.

Change-Id: Ib3ab7e80cfc4e440c0b3170292e1943888298875
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2023-03-29 09:57:57 -07:00
Akshata Sahukar
203f619b7f video: driver: Add support to handle synx fence related hfi props/info
Add support to handle synx v2 fence related hfi properties and
infos mentioned below:
- HFI_PROP_FENCE_CLIENT_DATA
- HFI_PROP_FENCE_TYPE
- HFI_PROP_FENCE_DIRECTION
- HFI_PROP_FENCE_ERROR_DATA_CORRUPT
- HFI_INFO_FENCE_SIGNAL_ERROR

Change-Id: Ifac0230dbeb0da80c104860c0e115167e82e85c6
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2023-03-28 18:11:45 -07:00
Govindaraj Rajagopal
c3f3af1e0e video: driver: enable memory tracking in stats handler
track internal memory usage periodically and print
memory usage stats using stats handler.

Change-Id: Idd16647dbe4aab3fc617a8f7fc0d3c81f459bb5d
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-03-24 20:03:10 +05:30
Megha Byahatti
c750ba048b video: driver: add try_fmt allow checks inside state handler
Remove msm_vidc_allow_s_fmt function and use state specific
MSM_VIDC_TRY_FMT checks inside state_handler

Change-Id: I405b9cfb89e4daadafcc05eb99e66e2b0aad328e
Signed-off-by: Megha Byahatti <quic_mbyahatt@quicinc.com>
2023-03-24 10:46:31 +05:30
Rakshitha Shakamuri
a5b376a5da video-driver: enable ddk compilation and additional changes on Bazel.
msm_video and video modules compile using ddk.

Change-Id: I5ddba19f973a13807a80c8d619bcc83b09307787
2023-03-23 15:29:38 -07:00
Govindaraj Rajagopal
c6535adfac video: driver: add streamoff handling in close state
Allow msm_vidc_stop_streaming() in msm_vidc_close_state()
state handler.

Change-Id: Id1c78991a8b3398e7f696500adb4a33be239ca9f
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2023-03-23 12:56:54 +05:30
qctecmdr
1fdfa4758c Merge "video: driver: add driver version" 2023-03-22 14:08:07 -07:00
qctecmdr
f5b44079a1 Merge "video: driver: Move all strict check into msm_vidc_driver" 2023-03-22 14:08:06 -07:00
qctecmdr
9a6b35b0b8 Merge "video: driver: Remove Odd width and Height check" 2023-03-21 22:10:52 -07:00
Vedang Nagar
6712a694be video: driver: Move all strict check into msm_vidc_driver
Move all __strict_check functions to msm_vidc_driver.

Change-Id: I74f3017f96f1426773698c1b44bca7b6d30df216
Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
2023-03-22 09:39:30 +05:30
Darshana Patil
fc6a238b09 video: driver: enable dynamic metadata
- enable Eva stats, hdr10/10+ as dynamic metadata.
- Make eva stats dependent on bitrate mode.
  Also remove preprocess and layer count as
  child of Eva stats.
- Make Hdr10/10+ dependent on profile.
- Adjust transcoding stats metadata based on
  bitrate mode, fps and resolution.

Change-Id: I7b110962e29db50cb321d69a0fb301950436da6f
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2023-03-21 11:53:10 -07:00
Vedang Nagar
753fae6969 video: driver: Remove Odd width and Height check
Remove odd width and height check during streamon

Change-Id: Ie8e86f83d4b65603d5797f4b10b87b049e0cb04d
2023-03-21 21:17:22 +05:30
qctecmdr
0e06b9af89 Merge "video: driver: Add debugfs support to disable synx v2 fence" 2023-03-20 14:37:04 -07:00
Maheshwar Ajja
ed089ff4e5 video: driver: add driver version
Add driver version for clients to query and manage
accordginly.

Change-Id: I5e8c51a4f18c28c0ed4d5a8bdaf0660d175c420a
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
2023-03-20 11:01:58 -07:00
Akshata Sahukar
625745bf00 video: driver: Add debugfs support to disable synx v2 fence
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>
2023-03-17 15:37:11 -07:00
Akshata Sahukar
eaf80f36cb video: driver: Add support to map synx fence registers
Add support to map below mentioned registers
required for synx v2 fence support
- FENCE
- QTMR0_F0V1_QTMR_V1_CNTPCT_LO
- QTMR0_F0V1_QTMR_V1_CNTPCT_HI

Change-Id: I43a80ca9be282eb4bbfc46a8d62d875478619516
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2023-03-17 15:35:51 -07:00
Akshata Sahukar
33d0b20141 video: driver: Add support for Synx V2 fences
Add Synx V2 fences support to improve latency
in video decode usecases.

Change-Id: If21f8b65895364a804f8e03580b09c44b377c199
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2023-03-17 13:59:37 -07:00
Govindaraj Rajagopal
6432572ed6 video: driver: use devm for resource management
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>
2023-03-17 10:57:09 +05:30
qctecmdr
ef309fc170 Merge "video: driver: resume video core before running ssr command" 2023-03-14 10:31:21 -07:00
qctecmdr
5abbd7a8b2 Merge "video: driver: Change ARP buffer context bank" 2023-03-13 10:42:24 -07:00
Chinmay Sawarkar
a0798a6902 video: driver: Change ARP buffer context bank
In non secure case, ARP buffer will use CB0.

Change-Id: Id7bb33906d374f230b2054455e6efdc41e710abe
Signed-off-by: Chinmay Sawarkar <quic_chinmays@quicinc.com>
2023-03-09 12:47:23 -08:00
Ankush Mitra
964752c27c video: driver: Remove hard parent dependency
Remove hard parent dependency
adjust it accordingly.

Change-Id: I8d5de2ba4199570f366745b980b451099467ebaa
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2023-03-09 12:05:19 +05:30
Ankush Mitra
a27c15b1c5 video: driver: resume video core before running ssr command
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>
2023-03-09 11:17:20 +05:30
qctecmdr
c0d457f55a Merge "video: driver: encoder delay start: CSC" 2023-03-08 09:34:56 -08:00
Akshata Sahukar
9a5fea8ef3 video: driver: Add support to enable enc ring buffer
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>
2023-03-07 17:14:30 -08:00
Akshata Sahukar
fb2e2c5715 video: driver: Align hfi files to pick ring buffer changes
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>
2023-03-07 17:13:09 -08:00
Darshana Patil
552670ad6b video: driver: encoder delay start: CSC
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>
2023-03-07 15:12:53 -08:00
qctecmdr
5dcf0adb92 Merge "video: driver: move DPB_TAG_LIST to input meta port" 2023-03-07 13:42:19 -08:00
Zhongbo Shi
33ec7e400e video: driver: move DPB_TAG_LIST to input meta port
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>
2023-03-06 23:26:00 -08:00
Zhongbo Shi
133bfb56ea video: driver: move DPB_LIST to input port
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>
2023-03-07 15:23:23 +08:00
qctecmdr
56057e9964 Merge "video: driver: Take avg bitrate for clk scaling" 2023-03-06 20:16:33 -08:00
Akshata Sahukar
2b974f7ad0 video: driver: Align hfi files to pick synx fence changes
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>
2023-03-03 16:59:49 -08:00
qctecmdr
c8feb57898 Merge "video: driver: handle uninitialized variables in open" 2023-03-03 10:14:49 -08:00
qctecmdr
8cf45cdbc1 Merge "video: driver: resolve skip unmap in system error cases" 2023-03-03 10:14:49 -08:00
Govindaraj Rajagopal
db80783d41 video: driver: handle uninitialized variables in open
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>
2023-03-03 16:47:01 +05:30
Ankush Mitra
f90831dc93 video: driver: Take avg bitrate for clk scaling
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>
2023-03-03 16:09:35 +05:30
qctecmdr
936f37d8ba Merge "video: driver: Move adjust/set control_ext API's to common/platform_ext.h/.c" 2023-03-01 16:35:56 -08:00
Maheshwar Ajja
28c761d7bf video: driver: resolve skip unmap in system error cases
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>
2023-02-28 23:37:39 -08:00
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
Megha Byahatti
4a578d26fd video: driver: Move adjust/set control_ext API's to common/platform_ext.h/.c
Remove msm_vidc_control_ext.h/.c

Change-Id: I5636705b38b7c5613baf8761953ae31963e6ffd3
Signed-off-by: Megha Byahatti <quic_mbyahatt@quicinc.com>
2023-02-24 15:37:21 +05:30
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