Re: [PATCH v2] media: venus: flush all buffers in output plane streamoff

From: Stanimir Varbanov
Date: Sun Apr 21 2024 - 14:18:52 EST


Hello Dikshita,

On 10.01.24 г. 8:12 ч., Dikshita Agarwal wrote:
For scenarios, when source change is followed by VIDIOC_STREAMOFF
on output plane, driver should discard any queued OUTPUT
buffers, which are not decoded or dequeued.
Flush with HFI_FLUSH_INPUT does not have any actual impact.
So, fix it, by invoking HFI_FLUSH_ALL, which will flush all
queued buffers.

Fixes: 85872f861d4c ("media: venus: Mark last capture buffer")

Cc: stable is missing with a kernel version.

Signed-off-by: Dikshita Agarwal <quic_dikshita@xxxxxxxxxxx>
---
Changes since v1:
- Added fixes tag (Bryan)

drivers/media/platform/qcom/venus/vdec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/platform/qcom/venus/vdec.c b/drivers/media/platform/qcom/venus/vdec.c
index 29130a9..0d2ab95 100644
--- a/drivers/media/platform/qcom/venus/vdec.c
+++ b/drivers/media/platform/qcom/venus/vdec.c
@@ -1255,7 +1255,7 @@ static int vdec_stop_output(struct venus_inst *inst)
break;
case VENUS_DEC_STATE_INIT:
case VENUS_DEC_STATE_CAPTURE_SETUP:
- ret = hfi_session_flush(inst, HFI_FLUSH_INPUT, true);
+ ret = hfi_session_flush(inst, HFI_FLUSH_ALL, true);

Is it tested on msm8916? If I remember correctly FLUSH_ALL produces session error, could you confirm, please.

--
regards,
Stan