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>
此提交包含在:
Govindaraj Rajagopal
2023-04-14 13:44:57 +05:30
父節點 e0f81d8681
當前提交 c4f5dc6069
共有 9 個檔案被更改,包括 6 行新增104 行删除

查看文件

@@ -1729,12 +1729,6 @@ static struct msm_platform_inst_capability instance_cap_data_pineapple[] = {
V4L2_CID_MPEG_VIDC_ENC_INPUT_COMPRESSION_RATIO,
0, CAP_FLAG_DYNAMIC_ALLOWED},
{DPB_LIST, DEC, CODECS_ALL,
0, 1, 1, 0,
0,
HFI_PROP_DPB_LIST,
CAP_FLAG_INPUT_PORT},
{FILM_GRAIN, DEC, AV1,
0, 1, 1, 0,
V4L2_CID_MPEG_VIDC_AV1D_FILM_GRAIN_PRESENT,
@@ -2615,11 +2609,6 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_pine
NULL,
msm_vidc_set_reserve_duration},
{DPB_LIST, DEC, CODECS_ALL,
{0},
NULL,
NULL},
{DRAP, DEC, AV1,
{0},
NULL,

查看文件

@@ -1269,12 +1269,6 @@ static struct msm_platform_inst_capability instance_cap_data_pineapple[] = {
{FIRMWARE_PRIORITY_OFFSET, DEC | ENC, CODECS_ALL,
1, 1, 1, 1},
{DPB_LIST, DEC, CODECS_ALL,
0, 1, 1, 0,
0,
HFI_PROP_DPB_LIST,
CAP_FLAG_OUTPUT_PORT},
{ALL_INTRA, ENC, H264|HEVC,
0, 1, 1, 0,
0,
@@ -1685,11 +1679,6 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_pine
NULL,
NULL},
{DPB_LIST, DEC, CODECS_ALL,
{0},
NULL,
NULL},
{ALL_INTRA, ENC, H264|HEVC,
{LTR_COUNT, SLICE_MODE, BIT_RATE},
msm_vidc_adjust_all_intra,