media: venus: flush all buffers in output streamoff

Message ID 1704695615-1036-2-git-send-email-quic_dikshita@quicinc.com
State New
Headers
Series media: venus: flush all buffers in output streamoff |

Commit Message

Dikshita Agarwal Jan. 8, 2024, 6:33 a.m. UTC
  For scenarios, when source change is followed by VIDIOC_STREAMOFF
on output, driver should discards any remaining queued OUTPUT
buffers which are not decoded or dequeued.
Flush with HFI_FLUSH_INPUT doesn't have any actual implact. So,
fix it by invoking HFI_FLUSH_ALL which will flush all queued buffers.

Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
---
 drivers/media/platform/qcom/venus/vdec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Dikshita Agarwal Jan. 8, 2024, 6:49 a.m. UTC | #1
Hello All,

Please ignore this duplicate email and review the other patch [1].
Sorry for the spam.

[1]
https://patchwork.linuxtv.org/project/linux-media/patch/1704695615-1036-1-git-send-email-quic_dikshita@quicinc.com/

Thanks,
Dikshita

On 1/8/2024 12:03 PM, Dikshita Agarwal wrote:
> For scenarios, when source change is followed by VIDIOC_STREAMOFF
> on output, driver should discards any remaining queued OUTPUT
> buffers which are not decoded or dequeued.
> Flush with HFI_FLUSH_INPUT doesn't have any actual implact. So,
> fix it by invoking HFI_FLUSH_ALL which will flush all queued buffers.
> 
> Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> ---
>  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);
>  		break;
>  	default:
>  		break;
  

Patch

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);
 		break;
 	default:
 		break;