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>
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>
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>
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>
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>
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>
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>
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>
- 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>
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>
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>
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>
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>
Use static const at all possible places to improve
the performance.
Change-Id: Ib9ac9eb7a15735949ae2a8ab727355e0626bc8ef
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
- 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>
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>
- 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>
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>
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>