- In s_fmt, there might be a codec change and here we are
free the ctrl handler, at the same time client may call
query ctrl and this will lead to null pointer access.
- To resolve null pointer access, do not free ctrl handler
and add new codec controls to the same ctrl handler.
Change-Id: Iee87d5cb4d65e31d405cb1fc9f82bebab696d027
Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
When fw sends FBD with release done flag,
reset driver pending_release flag. Without
this fix, a buffer will wrongly marked as
pending_release although release done was
already arrived from fw leading to issues
when trying to mark buffer as release_eligible
or when sending release command to fw.
Change-Id: Ib6b9f6233b133442057f3938159f6f0f33fc90f8
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
For Decode batching enabled case, max_data_size is being calculated
as the average of the data_size for all the buffers.
These buffers may contains EBD as well having data_size as 0,
which may reduce the average value by significant numbers and
hence reducing vsp numbers which may lead to vote clock to low
corners.
This may lead to slow decoding and hence Framework may drop the
frames.
Therefore, compute Average data_size only for Queued/Deffered bufs.
Change-Id: I12f155852dd750701b9448d3900b75f470eac126
Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
average calculation for llcc and ddr bandwidth for 2 seconds window
is printed in stats logs
Change-Id: I3507a0117c65b723644d00c89c7d466130d4a467
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
In VP9 superframe usecase one ETB has multiple FBDs,
and the EBD is after the first FBD.When driver receives
first FBD that is not in DPB_LIST, it releases this buffer.
Later on when the EBD arrives with dpb list property and
it turns out that first FBD for which release was sent is
actually in DPB_LIST, causing FW assertion.
To fix this issue, in the reverse path, when handling
dpb list property, mark those read only buffers which
are not in dpb list as release eligible. Later, in the
qbuf path for output buffers, send release for all those
buffers which were earlier marked as release eligible.
Change-Id: I5d6035b808653478311f41ebe53f60e728c7dd2a
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
Amend the driver internal buffer reuse logic:
1. If firmware releases the buffers as a response to driver request
(e.g during RESUME), destroy internal buffers explicitly after
firmware releases them.
2. If firmware releases the buffers independently, (e.g as a part of
STOP command), remove the QUEUED attribute but do not destroy them.
During the following port streamon sequence, driver can determine if
buffers can be reused or if they should be destroyed.
3. Do not reset buffer list size/count field when destroying released
internal buffers as the list can contain new active buffers. Resetting
causes a race condition and interferes with buffer reuse checks.
Change-Id: I030949d2400daa40b6b97b51f086ccc1b41e080f
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
Client is setting NV12 fmt as OP format before initial reconfig
So during input port stream_on, subscribe_input_property is
failing due to ubwc check(NV12 fmt), so DPB_LIST cap is getting
disabled, but later client is setting NV12C during reconfig.
So msm_vdec_release_nonref_buffers() during qbuf is bypassed and
release cmd is never sent to fw for pending ro buffers. Infact
entire RO handling at driver side is disabled.
Looks like due to some reason client was not requeueing same
buffers at same slot, So eventually number of pending RO buffers
increasing over the time. Once count shoots more than 256 fw
assertion happens and i.e leading to system error.
Remove UBWC check while subscribing input port properties, so
DPB_LIST willbe subscribed always and avoids above mentioned
issues.
Change-Id: I57ea0ea637ae3a57fcad430b212dcdb10f8e6d0f
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
Currently updating substate in CORE_DEINIT state was not
allowed. So i.e leading to issues at page fault cases.
Added change to allow updating substate for CODE_DEINIT
case as well.
Change-Id: I1c2cd089ca5c2172c8d672ef1f3701bec7bcc8c2
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
read the av1 uniform tile handling propert from fw
and display it. Required in debugging av1 usecases for
power calculation
Change-Id: I443e5afd591a8131c667c64cebb417fc022693ac
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
enable support to send META_TRANSCODING_STAT_INFO via
HFI_MODE_DYNAMIC_METADATA.
Change-Id: I32435e2e30a7a5d50c53645b7c92bbe38f7c90b3
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
modifying log level from error to high
in power suspend API
Change-Id: I6df3572506fb8cc12b7b0eb60cb1fa8049eacf5e
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
Remove HEIC codec definition from UAPI and use it as private
codec type
Change-Id: I4023b638f56e9db11c74ae8894f8451ada05c6e8
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
If the av1 tile rows and columns are greater than recommended decoder
av1 settings,vote for higher frequency.
Change-Id: Iea9f542e0b925a9ecb063c11b1827f31164f5a7b
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
Remove capability pointer and allocate
memory with max cap size.
Change-Id: I7f53e3b35439f91b72f057695b6e63f71bfecc0a
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
Move Qos register programming to driver. Use reset_control_acquire
api to ensure xo clk is on before programming
Change-Id: I52bf416da42675d206e1124368f75f627b8b2e9f
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
- 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>
power calculation is optimized by using encoder reference handling
and GOP details.
Change-Id: I29707fcd152f89e213532afc9c4b6191d23b4d6c
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
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>