video: driver: fix queuing too many output buffers to firmware

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>
Esse commit está contido em:
Govindaraj Rajagopal
2023-04-14 13:44:57 +05:30
commit c4f5dc6069
9 arquivos alterados com 6 adições e 104 exclusões

Ver arquivo

@@ -401,7 +401,6 @@ enum msm_vidc_metadata_bits {
CAP(FIRMWARE_PRIORITY_OFFSET) \
CAP(CRITICAL_PRIORITY) \
CAP(RESERVE_DURATION) \
CAP(DPB_LIST) \
CAP(FILM_GRAIN) \
CAP(SUPER_BLOCK) \
CAP(DRAP) \