커밋 그래프

1020 커밋

작성자 SHA1 메시지 날짜
Manikanta Kanamarlapudi
21ab599454 video-driver: Allow 96x96 for hevc encoder
Allow 96x96 for hevc encoder.

Change-Id: I8d3d82b9f38278098cb0fedb71f1fd3f34648a35
Signed-off-by: Manikanta Kanamarlapudi <quic_kmanikan@quicinc.com>
2022-03-22 09:54:50 +05:30
qctecmdr
0835d887df Merge "video: driver: add video banner support" 2022-03-21 13:45:56 -07:00
qctecmdr
4fef9e2544 Merge "video: driver: fix payload ptr null pointer dereference" 2022-03-21 13:45:56 -07:00
Darshana Patil
fc3b1b5466 video: driver: update condition to allow dynamic controls
When client queues input buffer with dynamic controls associated
with it and also sends drain command, it is possible that driver
state changes to DRAIN_LAST_FLAG and after that driver tries to apply
dynamic controls. For encoder currently, dynamic controls are
allowed only in START AND START_OUTPUT state. To resolve this
timing issue updated condition to allow dynamic controls as along
as master port is streaming.

Change-Id: I3fe6aa9f8ca8f89e7fffaf90940618cc6643b21b
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-03-21 11:37:47 -07:00
Govindaraj Rajagopal
0d72a68a7f video: driver: add video banner support
Video-banner contains compilation timestamp, which will
be helpful in stability debugging to find mismatch b/w
ramdump and symbols.

Change-Id: Ibc446fc4398a184b840867c568ed9e8940e490ae
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-03-21 19:20:43 +05:30
qctecmdr
1cc8fd9df1 Merge "video: driver: Enable bitwise operations for metadata controls" 2022-03-19 21:19:38 -07:00
Akshata Sahukar
4cebf46356 video: driver: fix payload ptr null pointer dereference
payload pointer will be null in case firmware incorrectly
sends HFI_PAYLOAD_NONE for property packets that contain
payload. In this case, driver would end up dereferencing
payload ptr which is null. Hence, fix this.

Change-Id: I5b65c081110ffe8bf3565972141b3b72200aee66
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-03-18 17:13:27 -07:00
qctecmdr
b5824aaaa4 Merge "video: driver: Add support for AV1D IBC feature" 2022-03-18 15:47:43 -07:00
Akshata Sahukar
d85f112d92 video: driver: Enable bitwise operations for metadata controls
Enable bitwise operations for metadata controls with below
mentioned bit definitions:
- ENABLE (BIT 0): Enable metadata.
- TX_INP (BIT 1): Client transfers metadata in input port.
- TX_OUT (BIT 2): Client transfers metadata in output port.
- RX_INP (BIT 3): Client receives metadata in input port.
- RX_OUT (BIT 4): Client receives metadata in output port.

Change-Id: Ie3d720528a383632c7766a5ccb09cead0f6b9428
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-03-18 13:26:00 -07:00
Deepa Guthyappa Madivalara
8f45e56c57 video: driver: remove support for diwali
Diwali chipset is not supported on kernel 5.15, hence removing it.

Change-Id: Ibeb69b5f6a4a5377a887c59d98f5571c971792bc
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-03-17 13:13:11 -07:00
qctecmdr
964a9fed8c Merge "video: driver: fix streamon deadlock issue" 2022-03-17 09:44:27 -07:00
qctecmdr
724c5433bb Merge "video: driver: update device capabilities" 2022-03-17 09:44:27 -07:00
qctecmdr
595ccbcc31 Merge "video: driver: ts_reorder for negative timestamps" 2022-03-16 22:08:58 -07:00
Mihir Ganu
96358cee7d video: driver: Add support for AV1D IBC feature
Add support for AV1D Intra-Block Copy (IBC) feature. This requires a
dedicated internal buffer (HFI_BUFFER_IBC_AV1D), which was previously
part of LINE buffer. A new internal buffer type called
HFI_BUFFER_PARTIAL_DATA is introduced, and this buffer type holds
HFI_BUFFER_IBC_AV1D for AV1D. HFI_BUFFER_PARTIAL_DATA is mapped to
NON_SECURE_PIXEL context bank for non-secure and to SECURE_PIXEL
context bank for secure use case.

Change-Id: If7ae22495f9981f275d54acc342c25ccdfc0c7b9
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
2022-03-16 16:48:08 -07:00
Darshana Patil
3673cb87d1 video: driver: update device capabilities
add V4L2_CAP_VIDEO_M2M_MPLANE capability
since driver supports both input and
output ports.

Change-Id: Ie43b21bbaa2fe995a946e4dbc7b6f03ece4dae23
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-03-16 12:24:37 -07:00
Darshana Patil
513e0c1c1b video: driver: fix streamon deadlock issue
If client queues input buffers before streamon of
input port, these buffers are not actually queued
to driver but instead held in v4l2 framework. They
are queued to driver when input port is streamed on.
In this scenario when input port is streamed on, inst
lock is acquired and as part of this call, vb2 startes
queueing buffers to driver. During this enqueuing,
buf_queue also tries to acquire inst lock which leads
to deadlock. Hence fixed this issue by moving inst lock
acquiring/releasing to start_streaming call for streamon
and stop_streamping call for streamoff.

Change-Id: I67ed28b4f270ea899c4ace88a368148848b31072
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-03-15 17:42:43 -07:00
Shrikara B
b2d8ec9191 video: driver: convert ts scale before calculating auto framerate
Convert the vb2 timestamp, which is in nanosec scale to microsec
scale before calculating the auto framerate.
Auto framerate calculation requires timestamp values in microsec
to calculate the framerate correctly. Due to wrong timestamp scale,
framerate of 0 was getting set to FW

Change-Id: I49b8ae5cfb2ee89dd283f07a2643238989d43d0a
Signed-off-by: Shrikara B <quic_shrikara@quicinc.com>
2022-03-15 21:43:21 +05:30
Renjiang Han
743df51b4b video: driver: ts_reorder for negative timestamps
The timestamp in the driver is stored in the U64 type, but if there
is a negative value in the timestamp and the timestamp needs to be
sorted, using the timestamp value directly to compare the size is to
use the U64 type, which will turn the negative timestamp value into
a very large positive timestamp value, resulting in the sorting
result of timestamp is incorrect.

Change-Id: I13ccdb2c0c4d7b4e32999c5e88092c636c1f0b69
Signed-off-by: Renjiang Han <quic_renjiang@quicinc.com>
2022-03-15 19:51:05 +08:00
Darshana Patil
eef358cf9c video: driver: request api fixes for v4l2-compliance
- add support for prepare_buf
- check if client has configured invalid fd for metadata
  buffer fd control.

Change-Id: I576d02be05e4692a5ab45286895c34284f08651c
Signed-off-by: Darshana Patil <darshana@quicinc.com>
2022-03-14 16:44:15 -07:00
qctecmdr
5b1f70c728 Merge "video: driver: disable auto frame rate for WFD" 2022-03-11 21:25:19 -08:00
qctecmdr
70714739d7 Merge "video: driver: disable 100ms VBV delay and adaptive blur" 2022-03-11 17:02:12 -08:00
qctecmdr
e5966632db Merge "video: driver: handle static and dynamic properties for decoder" 2022-03-11 17:02:12 -08:00
Mahesh Kumar Sharma
9e1771a074 video: driver: disable 100ms VBV delay and adaptive blur
Disable 100ms VBV delay and apaptive blur.

Change-Id: I7a2daa0636dead60d4ceeff9078563ec5f4572a9
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-03-10 13:19:31 -08:00
Akshata Sahukar
ad541ef5fe video: driver: avoid uninitialized variable usage
Initialize the fence variable to avoid uninitialized variable usage.

Change-Id: I452a12d7dcb7b5778eeee159c96441ae13ed0413
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-03-10 13:07:58 -08:00
Zhongbo Shi
53447b7da5 video: driver: disable auto frame rate for WFD
Disable auto frame rate when time delta based RC
is disabled for WFD encoders.

Change-Id: I40dcf7700cfcc0de2538b43f7ede4a168e452310
Signed-off-by: Zhongbo Shi <quic_zhongbos@quicinc.com>
2022-03-08 18:40:50 -08:00
Govindaraj Rajagopal
4f1180f1a6 video: driver: handle static and dynamic properties for decoder
Added change at decoder side to use adjust/set functions for
static(streamon) and dynamic(s_ctrl) cases.

Change-Id: I3d8c32baaf2fa2c3a077cc936a8ff2159ababfe3
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-03-08 19:46:05 +05:30
qctecmdr
c3bdea095b Merge "video: driver: decrease heap usage for 24 session support on IRIS3" 2022-03-03 18:26:47 -08:00
Mihir Ganu
de4872d103 video: driver: Update AV1D secure session capabilities
Add width and height limits to AV1D secure session
capabilities.

Change-Id: I8ebdb6818828073ec28597270a2cf72b3669a04b
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
2022-03-02 15:34:48 -08:00
Mahesh Kumar Sharma
e3f2139586 video: driver: decrease heap usage for 24 session support on IRIS3
Originally h26xd and vp9 display buffer was allocated from FW heap.
In order to decrease heap usage for 24 session support on IRIS3,
FW has moved display buffer from FW heap to persist buffer.
Adding this support in driver.

Change-Id: If865748e7c0df5fecd26905f7ef343f465f69967
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-02-28 10:37:41 -08:00
qctecmdr
475418eabf Merge "video: driver: add support for MMAP io mode" 2022-02-25 09:17:52 -08:00
qctecmdr
d7658b1aee Merge "video: driver: use static const at possible places" 2022-02-23 19:58:52 -08:00
qctecmdr
37396addce Merge "video: driver: fix static and dynamic property setting sequence" 2022-02-23 19:58:51 -08:00
qctecmdr
098d0f1579 Merge "video: driver: acquire lock for request queue" 2022-02-23 19:58:50 -08:00
Akshata Sahukar
f9a844d745 video: driver: fix in header details
fix in header comment details.

Change-Id: I698b1ee9076a908a2b8f7b9c588c733567f9d8c9
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-02-23 18:08:48 -08:00
Darshana Patil
cf46bf2e54 video: driver: acquire lock for request queue
When client queues buffer via requests using
ioctl MEDIA_REQUEST_IOC_QUEUE, vidioc_qbuf
callback is not called to driver but instead
buf_queue callback is called directly.
Video driver is acquiring lock in vidioc_qbuf
but not in buf_queue and hence acquiring lock
was missing for requests which is leading to
errors. Moved lock from vidioc_qbuf to buf_queue
callback to resolve the issue.

Change-Id: I76e3fcf07b7b24218717075f2c7d4a688ad18e86
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-02-22 12:31:24 -08:00
Govindaraj Rajagopal
8b8d3ec47a video: driver: use static const at possible places
Use static const at all possible places to improve
the performance.

Change-Id: Ib9ac9eb7a15735949ae2a8ab727355e0626bc8ef
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-02-18 20:56:53 +05:30
Govindaraj Rajagopal
0fde3a9aca video: driver: fix static and dynamic property setting sequence
Added changes to reuse caps_list for setting static properties
and also modified dynamic property setting sequence. Removed
redundant implementations.

Change-Id: I5829d3c98b0159916d7794f43e445a6191050182
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-02-18 18:20:39 +05:30
qctecmdr
2d2e07aee9 Merge "video: driver: AV1 power changes" 2022-02-17 22:19:05 -08:00
Chinmay Sawarkar
48f1d09c2f video: driver: AV1 power changes
AV1 power changes.

Change-Id: If05c52cb6f30152b773389cc4127bf2514765170
Signed-off-by: Chinmay Sawarkar <quic_chinmays@quicinc.com>
2022-02-17 17:15:37 -08:00
qctecmdr
0841c8daa7 Merge "video: driver: Enhance fence support" 2022-02-17 17:00:57 -08:00
Akshata Sahukar
22cc24de7f video: driver: Enhance fence support
- Introduce V4L2_EVENT_VIDC_METADATA to post fence fd returned in
  ETB metadata done buffer.
- V4L2_CID_MPEG_VIDC_SW_FENCE_FD g_ctrl support for client to get
  fence fd for requested fence id.
- Addition of fence delivery and subscribtion support.
- Fence property packetization to send to firmware via FTB buffer.

Change-Id: Ifb289849e352af2c4729aa95040bd83753979970
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-02-17 13:16:53 -08:00
Govindaraj Rajagopal
93b88b9d69 video: driver: re-organize enums and add comments
Re-organized enums(msm_vidc_inst_capability_type) in below
order.

[1] Root(no parents) enums,
[2] Intermittent(having both parents & children) enums,
[3] Leaf(no children) enums.

Also added proper comments in header file.

Change-Id: I2bda51b54b6fa6e190098f16dd60090004cfbecf
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-02-17 10:33:11 -08:00
Deepa Guthyappa Madivalara
43e71fff42 Revert "video: driver: utilize v4l2_m2m_ioctl_streamon helper function"
This reverts commit e5189157f1.

Change-Id: I33e6e45ea6a08370ef8b80cddce9916bf08e613f
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-02-16 16:35:49 -08:00
Dikshita Agarwal
8ab5854042 video: driver: add support for MMAP io mode
If a device supports streaming, it should support MMAP
streaming mode, as it's the one streaming mode that is
always available, so applications can rely on this.

Partially Fixes: v4l2-compliance:
                 test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF.

Change-Id: Ibcb29f75f3fed4e767e05c9d203d611d45f02e8b
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
2022-02-16 11:06:54 +05:30
qctecmdr
7373cc5efe Merge "video: driver: add request api controls for metadata" 2022-02-15 16:26:52 -08:00
qctecmdr
ef7ec4e390 Merge "video: driver: check proper DDR type" 2022-02-15 08:52:52 -08:00
Darshana Patil
7a27860070 video: driver: add request api controls for metadata
- Added an extension to enable sending input metadata
  via request.
- Added an extension for client to send input metadata
  buffer fd via request api.

Change-Id: I503ea2cbfb02831d9cfd475e83c94eee72545836
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-02-14 16:17:54 -08:00
Akshata Sahukar
0a5549a6a9 video: driver: decouple fence structure from video buffer
Decouple fence structure from video buffer. Also add some
misc fence flow setup support.

Change-Id: Ia4e223a3a288f0dae3238850685f3a73d4b9400a
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-02-14 09:46:11 -08:00
qctecmdr
d10f2f9108 Merge "video: driver: utilize v4l2_m2m_ioctl_streamon helper function" 2022-02-11 18:19:50 -08:00
Mahesh Kumar Sharma
3552fff0cf video: driver: check proper DDR type
Different DDR types are required for different UBWC configs.
LPDDR5 and 5X are the only supported DDR types on Kailua.

Change-Id: I33e486bef79d919f0d790734acd4be05c51a39e0
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-02-11 17:11:35 -08:00