[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250305104335.3629945-6-quic_dikshita@quicinc.com>
Date: Wed, 5 Mar 2025 16:13:28 +0530
From: Dikshita Agarwal <quic_dikshita@...cinc.com>
To: <quic_vgarodia@...cinc.com>, <quic_abhinavk@...cinc.com>,
<mchehab@...nel.org>, <quic_dikshita@...cinc.com>
CC: <hverkuil@...all.nl>, <linux-media@...r.kernel.org>,
<linux-arm-msm@...r.kernel.org>, <linux-kernel@...r.kernel.org>
Subject: [RFC PATCH 05/12] media: iris: Skip destroying internal buffer if not dequeued
Firmware might hold the DPB buffers for reference in case of sequence
change, so skip destroying buffers for which QUEUED flag is not removed.
Signed-off-by: Dikshita Agarwal <quic_dikshita@...cinc.com>
---
drivers/media/platform/qcom/iris/iris_buffer.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/media/platform/qcom/iris/iris_buffer.c b/drivers/media/platform/qcom/iris/iris_buffer.c
index 8c9d5b7fe75c..305b630ca269 100644
--- a/drivers/media/platform/qcom/iris/iris_buffer.c
+++ b/drivers/media/platform/qcom/iris/iris_buffer.c
@@ -399,6 +399,13 @@ int iris_destroy_internal_buffers(struct iris_inst *inst, u32 plane)
for (i = 0; i < len; i++) {
buffers = &inst->buffers[internal_buf_type[i]];
list_for_each_entry_safe(buf, next, &buffers->list, list) {
+ /*
+ * skip destroying internal(DPB) buffer if firmware
+ * did not return it.
+ */
+ if (buf->attr & BUF_ATTR_QUEUED)
+ continue;
+
ret = iris_destroy_internal_buffer(inst, buf);
if (ret)
return ret;
--
2.34.1
Powered by blists - more mailing lists