On Fri May 9 14:09:00 2025 +0530, Dikshita Agarwal wrote:
> Firmware sends capture buffers with 0 filled length which are not to be
> displayed and should be dropped by client.
> To achieve the same, add V4L2_BUF_FLAG_ERROR to such buffers by making
> sure:
> - These 0 length buffers are not returned as result of flush.
> - Its not a buffer with LAST flag enabled which will also have 0 filled
> length.
>
> Cc: [email protected]
> Fixes: d09100763bed ("media: iris: add support for drain sequence")
> Acked-by: Vikash Garodia <[email protected]>
> Tested-by: Neil Armstrong <[email protected]> # on SM8550-QRD
> Tested-by: Neil Armstrong <[email protected]> # on SM8550-HDK
> Tested-by: Neil Armstrong <[email protected]> # on SM8650-QRD
> Tested-by: Neil Armstrong <[email protected]> # on SM8650-HDK
> Signed-off-by: Dikshita Agarwal <[email protected]>
> Tested-by: Vikash Garodia <[email protected]> # on sa8775p-ride
> Signed-off-by: Bryan O'Donoghue <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>
Patch committed.
Thanks,
Hans Verkuil
drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c | 5 +++++
1 file changed, 5 insertions(+)
---
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c
b/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c
index 4488540d1d41..d2cede2fe1b5 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c
@@ -378,6 +378,11 @@ static int iris_hfi_gen2_handle_output_buffer(struct
iris_inst *inst,
buf->flags = iris_hfi_gen2_get_driver_buffer_flags(inst,
hfi_buffer->flags);
+ if (!buf->data_size && inst->state == IRIS_INST_STREAMING &&
+ !(hfi_buffer->flags & HFI_BUF_FW_FLAG_LAST)) {
+ buf->flags |= V4L2_BUF_FLAG_ERROR;
+ }
+
return 0;
}