during opt_list iteration, eligible node gets added into
root_list but if incase that node is having children then
child nodes were not getting added into opt_list. So added
change to address this corner case.
Change-Id: Ie402a9d57b5b00cb94ef30e2345c8c4580fc8f69
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
For VPSS, FW requests more bandwidth from HW.
In order to support inline processing, FW introduced
request preprcess property.
Enble this property only when following conditions are met:
- CAC-BRS is required
- don't have EVA stats.
- Upto 4k@60 fps, max( frame rate, operating rate) <= 60
Change-Id: I3cf83483d9320e5dfe20617b37a54b9d5fbcffd8
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
- send '-ENOMEM' after max mbps is reached
Change-Id: I6d597021046ea375f2131c2e40ac07d1aebdd9b8
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
Mark I Frame as Key frames for all codecs.
Change-Id: I4fc73c076a93a959f4ed97ec65398ac3315af602
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
update msm_vidc_platform.c to keep all common API's
and macro's in a single file to avoid redundancy.
Change-Id: I43869f54514ab8c531b6e27b84ce0a6c1f1806ce
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
Currently driver supports only random intra refresh, extend
it to support cyclic intra refresh too.
Cyclic intra refresh is supported dynamically as well.
- If intra refresh type is set and num of LCU’s to be refreshed
are non-zero before session start, intra refresh will be enabled
throughout the session.
Any further dynamic settings in the number of LCU’s including 0
will be honored accordingly.
- If intra refresh type is set and num of LCU’s to be refreshed are zero
before session start, intra refresh will be disabled.
When client sets it to non-zero value dynamically, driver will set
HFI_PROP_REQUEST_SYNC_FRAME with
HFI_SYNC_FRAME_REQUEST_WITH_PREFIX_SEQ_HDR.
Driver needs to send HFI_PROP_REQUEST_SYNC_FRAME only at time of
CIR Enable, no need to send at time of disable/enable again.
Change-Id: I10a2fb22d131353721ee658213ed807ce0794009
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
1. Remove load based admission control for decoder.
2. For decoder, use max of frame rate, operating rate,
timestamp rate and input rate for power calculations.
3. For encoder, use max of frame rate and operating rate
for power calculations.
Change-Id: Ibdb2d4b29438d7f656a27771953d10e0a0e72edd
v4l2-compliance test does not support private codecs. Hence
added check to not return HEIC codec when enum_fmt is called.
Change-Id: Iff6fbb45b436e39e8b7c181859dbc1519338d003
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
Introduce new v4l2 controls to set frame rate and operating rate
on decoder as VIDIOC_S/G_PARM is not allowed on decoder.
fix: v4l2-compliance:S/G_PARM
Change-Id: I6c090c0ae541a086c73bb79564dd29ed4aa755b3
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
v4l2 compliance fixes for test formats
fixes:
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
test VIDIOC_G_FMT: OK
test VIDIOC_TRY_FMT: OK
test VIDIOC_S_FMT: OK
Change-Id: I23c193ab5785bb10d070fa3085678d9669f53a92
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
Remove dependency between min quality, CAC and quality boost.
Accept quality boost value from client and if client did not
set then enable max quality boost upto 4k@60fps and disable after that.
Change-Id: I0685065b8dee8754aff2cf5f176a2f40e9e080dd
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
Update input, output and crop resolution based in client provided
resolution on input port as per the v4l2 compliance test expectation.
Change-Id: I56f197d72cc132f38c00842b28b23b20c508cf23
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Use client input buffer queuing rate for power
calculations for non-realtime sessions
Change-Id: I498422ba1ae9ae96b782a2096dc0cd0aa7b05798
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
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>