* [PATCH 1/7] media: qcom: iris: Centralize internal buffer table selection
2026-04-22 11:16 [PATCH 0/7] media: qcom: iris: miscellaneous code-quality fixes Dikshita Agarwal
@ 2026-04-22 11:16 ` Dikshita Agarwal
2026-04-23 9:17 ` Bryan O'Donoghue
2026-04-22 11:16 ` [PATCH 2/7] media: qcom: iris: fix state-change debug log printing stale value Dikshita Agarwal
` (5 subsequent siblings)
6 siblings, 1 reply; 22+ messages in thread
From: Dikshita Agarwal @ 2026-04-22 11:16 UTC (permalink / raw)
To: Vikash Garodia, Abhinav Kumar, Bryan O'Donoghue,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue,
Dikshita Agarwal
Internal buffer table dispatch is duplicated across multiple Iris code
paths, which is error‑prone and makes future changes harder to reason
about.
Consolidate the buffer dispatch logic into a single helper so that table
selection is defined in exactly one place and keep call sites minimal.
No functional change intended.
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
---
drivers/media/platform/qcom/iris/iris_buffer.c | 107 ++++++-------------------
1 file changed, 26 insertions(+), 81 deletions(-)
diff --git a/drivers/media/platform/qcom/iris/iris_buffer.c b/drivers/media/platform/qcom/iris/iris_buffer.c
index 9151f43bc6b9c2c34c803de4231d1e6de0bec6c4..137a69c99bcc24a72f4f27e516b8fb4d6509c0ad 100644
--- a/drivers/media/platform/qcom/iris/iris_buffer.c
+++ b/drivers/media/platform/qcom/iris/iris_buffer.c
@@ -299,39 +299,41 @@ static void iris_fill_internal_buf_info(struct iris_inst *inst,
buffers->min_count = iris_vpu_buf_count(inst, buffer_type);
}
-void iris_get_internal_buffers(struct iris_inst *inst, u32 plane)
+static void iris_get_int_buf_tbl(struct iris_inst *inst, u32 plane,
+ const u32 **buf_tbl, u32 *buf_tbl_size)
{
const struct iris_platform_data *platform_data = inst->core->iris_platform_data;
- const u32 *internal_buf_type;
- u32 internal_buffer_count, i;
if (inst->domain == DECODER) {
if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = platform_data->dec_ip_int_buf_tbl;
- internal_buffer_count = platform_data->dec_ip_int_buf_tbl_size;
- for (i = 0; i < internal_buffer_count; i++)
- iris_fill_internal_buf_info(inst, internal_buf_type[i]);
+ *buf_tbl = platform_data->dec_ip_int_buf_tbl;
+ *buf_tbl_size = platform_data->dec_ip_int_buf_tbl_size;
} else {
- internal_buf_type = platform_data->dec_op_int_buf_tbl;
- internal_buffer_count = platform_data->dec_op_int_buf_tbl_size;
- for (i = 0; i < internal_buffer_count; i++)
- iris_fill_internal_buf_info(inst, internal_buf_type[i]);
+ *buf_tbl = platform_data->dec_op_int_buf_tbl;
+ *buf_tbl_size = platform_data->dec_op_int_buf_tbl_size;
}
} else {
if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = platform_data->enc_ip_int_buf_tbl;
- internal_buffer_count = platform_data->enc_ip_int_buf_tbl_size;
- for (i = 0; i < internal_buffer_count; i++)
- iris_fill_internal_buf_info(inst, internal_buf_type[i]);
+ *buf_tbl = platform_data->enc_ip_int_buf_tbl;
+ *buf_tbl_size = platform_data->enc_ip_int_buf_tbl_size;
} else {
- internal_buf_type = platform_data->enc_op_int_buf_tbl;
- internal_buffer_count = platform_data->enc_op_int_buf_tbl_size;
- for (i = 0; i < internal_buffer_count; i++)
- iris_fill_internal_buf_info(inst, internal_buf_type[i]);
+ *buf_tbl = platform_data->enc_op_int_buf_tbl;
+ *buf_tbl_size = platform_data->enc_op_int_buf_tbl_size;
}
}
}
+void iris_get_internal_buffers(struct iris_inst *inst, u32 plane)
+{
+ const u32 *internal_buf_type;
+ u32 internal_buffer_count, i;
+
+ iris_get_int_buf_tbl(inst, plane, &internal_buf_type, &internal_buffer_count);
+
+ for (i = 0; i < internal_buffer_count; i++)
+ iris_fill_internal_buf_info(inst, internal_buf_type[i]);
+}
+
static int iris_create_internal_buffer(struct iris_inst *inst,
enum iris_buffer_type buffer_type, u32 index)
{
@@ -366,29 +368,12 @@ static int iris_create_internal_buffer(struct iris_inst *inst,
int iris_create_internal_buffers(struct iris_inst *inst, u32 plane)
{
- const struct iris_platform_data *platform_data = inst->core->iris_platform_data;
u32 internal_buffer_count, i, j;
struct iris_buffers *buffers;
const u32 *internal_buf_type;
int ret;
- if (inst->domain == DECODER) {
- if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = platform_data->dec_ip_int_buf_tbl;
- internal_buffer_count = platform_data->dec_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = platform_data->dec_op_int_buf_tbl;
- internal_buffer_count = platform_data->dec_op_int_buf_tbl_size;
- }
- } else {
- if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = platform_data->enc_ip_int_buf_tbl;
- internal_buffer_count = platform_data->enc_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = platform_data->enc_op_int_buf_tbl;
- internal_buffer_count = platform_data->enc_op_int_buf_tbl_size;
- }
- }
+ iris_get_int_buf_tbl(inst, plane, &internal_buf_type, &internal_buffer_count);
for (i = 0; i < internal_buffer_count; i++) {
buffers = &inst->buffers[internal_buf_type[i]];
@@ -442,30 +427,13 @@ int iris_queue_internal_deferred_buffers(struct iris_inst *inst, enum iris_buffe
int iris_queue_internal_buffers(struct iris_inst *inst, u32 plane)
{
- const struct iris_platform_data *platform_data = inst->core->iris_platform_data;
struct iris_buffer *buffer, *next;
struct iris_buffers *buffers;
const u32 *internal_buf_type;
u32 internal_buffer_count, i;
int ret;
- if (inst->domain == DECODER) {
- if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = platform_data->dec_ip_int_buf_tbl;
- internal_buffer_count = platform_data->dec_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = platform_data->dec_op_int_buf_tbl;
- internal_buffer_count = platform_data->dec_op_int_buf_tbl_size;
- }
- } else {
- if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = platform_data->enc_ip_int_buf_tbl;
- internal_buffer_count = platform_data->enc_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = platform_data->enc_op_int_buf_tbl;
- internal_buffer_count = platform_data->enc_op_int_buf_tbl_size;
- }
- }
+ iris_get_int_buf_tbl(inst, plane, &internal_buf_type, &internal_buffer_count);
for (i = 0; i < internal_buffer_count; i++) {
buffers = &inst->buffers[internal_buf_type[i]];
@@ -501,30 +469,13 @@ int iris_destroy_internal_buffer(struct iris_inst *inst, struct iris_buffer *buf
static int iris_destroy_internal_buffers(struct iris_inst *inst, u32 plane, bool force)
{
- const struct iris_platform_data *platform_data = inst->core->iris_platform_data;
struct iris_buffer *buf, *next;
struct iris_buffers *buffers;
const u32 *internal_buf_type;
u32 i, len;
int ret;
- if (inst->domain == DECODER) {
- if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = platform_data->dec_ip_int_buf_tbl;
- len = platform_data->dec_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = platform_data->dec_op_int_buf_tbl;
- len = platform_data->dec_op_int_buf_tbl_size;
- }
- } else {
- if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = platform_data->enc_ip_int_buf_tbl;
- len = platform_data->enc_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = platform_data->enc_op_int_buf_tbl;
- len = platform_data->enc_op_int_buf_tbl_size;
- }
- }
+ iris_get_int_buf_tbl(inst, plane, &internal_buf_type, &len);
for (i = 0; i < len; i++) {
buffers = &inst->buffers[internal_buf_type[i]];
@@ -593,18 +544,12 @@ static int iris_release_internal_buffers(struct iris_inst *inst,
static int iris_release_input_internal_buffers(struct iris_inst *inst)
{
- const struct iris_platform_data *platform_data = inst->core->iris_platform_data;
const u32 *internal_buf_type;
u32 internal_buffer_count, i;
int ret;
- if (inst->domain == DECODER) {
- internal_buf_type = platform_data->dec_ip_int_buf_tbl;
- internal_buffer_count = platform_data->dec_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = platform_data->enc_ip_int_buf_tbl;
- internal_buffer_count = platform_data->enc_ip_int_buf_tbl_size;
- }
+ iris_get_int_buf_tbl(inst, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+ &internal_buf_type, &internal_buffer_count);
for (i = 0; i < internal_buffer_count; i++) {
ret = iris_release_internal_buffers(inst, internal_buf_type[i]);
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 1/7] media: qcom: iris: Centralize internal buffer table selection
2026-04-22 11:16 ` [PATCH 1/7] media: qcom: iris: Centralize internal buffer table selection Dikshita Agarwal
@ 2026-04-23 9:17 ` Bryan O'Donoghue
0 siblings, 0 replies; 22+ messages in thread
From: Bryan O'Donoghue @ 2026-04-23 9:17 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 22/04/2026 12:16, Dikshita Agarwal wrote:
> +static void iris_get_int_buf_tbl(struct iris_inst *inst, u32 plane,
> + const u32 **buf_tbl, u32 *buf_tbl_size)
> + *buf_tbl = platform_data->enc_op_int_buf_tbl;
> + *buf_tbl_size = platform_data->enc_op_int_buf_tbl_size;
> }
> }
> }
>
> +void iris_get_internal_buffers(struct iris_inst *inst, u32 plane)
> +{
> + const u32 *internal_buf_type;
> + u32 internal_buffer_count, i;
> +
> + iris_get_int_buf_tbl(inst, plane, &internal_buf_type, &internal_buffer_count);
I'd suggest mirroring the variable names from caller to callee since it
makes reading/understanding the code generally easier.
---
bod
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 2/7] media: qcom: iris: fix state-change debug log printing stale value
2026-04-22 11:16 [PATCH 0/7] media: qcom: iris: miscellaneous code-quality fixes Dikshita Agarwal
2026-04-22 11:16 ` [PATCH 1/7] media: qcom: iris: Centralize internal buffer table selection Dikshita Agarwal
@ 2026-04-22 11:16 ` Dikshita Agarwal
2026-04-22 12:20 ` Konrad Dybcio
2026-04-23 9:18 ` Bryan O'Donoghue
2026-04-22 11:16 ` [PATCH 3/7] media: qcom: iris: Fix bitmask test in iris_allow_cmd() Dikshita Agarwal
` (4 subsequent siblings)
6 siblings, 2 replies; 22+ messages in thread
From: Dikshita Agarwal @ 2026-04-22 11:16 UTC (permalink / raw)
To: Vikash Garodia, Abhinav Kumar, Bryan O'Donoghue,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue,
Dikshita Agarwal
The state‑change debug log in iris_inst_change_state() always prints the
same value for the old and new state, rendering it useless for
debugging. This happens because the state is updated before the log is
emitted.
Log the transition before updating the state so the previous value is
preserved, consistent with the existing sub‑state handling.
Fixes: 11712ce70f8e ("media: iris: implement vb2 streaming ops")
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
---
drivers/media/platform/qcom/iris/iris_state.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/platform/qcom/iris/iris_state.c b/drivers/media/platform/qcom/iris/iris_state.c
index d14472414750dc7edc4834f32a51f2c5adc3762e..e991f34916ec6e74f3d2cf98bd61b8b1e12a3ca8 100644
--- a/drivers/media/platform/qcom/iris/iris_state.c
+++ b/drivers/media/platform/qcom/iris/iris_state.c
@@ -60,9 +60,9 @@ int iris_inst_change_state(struct iris_inst *inst,
return -EINVAL;
change_state:
- inst->state = request_state;
dev_dbg(inst->core->dev, "state changed from %x to %x\n",
inst->state, request_state);
+ inst->state = request_state;
return 0;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 2/7] media: qcom: iris: fix state-change debug log printing stale value
2026-04-22 11:16 ` [PATCH 2/7] media: qcom: iris: fix state-change debug log printing stale value Dikshita Agarwal
@ 2026-04-22 12:20 ` Konrad Dybcio
2026-04-23 9:18 ` Bryan O'Donoghue
1 sibling, 0 replies; 22+ messages in thread
From: Konrad Dybcio @ 2026-04-22 12:20 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Hans Verkuil,
Stefan Schmidt, Hans Verkuil, Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 4/22/26 1:16 PM, Dikshita Agarwal wrote:
> The state‑change debug log in iris_inst_change_state() always prints the
> same value for the old and new state, rendering it useless for
> debugging. This happens because the state is updated before the log is
> emitted.
>
> Log the transition before updating the state so the previous value is
> preserved, consistent with the existing sub‑state handling.
>
> Fixes: 11712ce70f8e ("media: iris: implement vb2 streaming ops")
> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
> ---
I'd argue it prints the opposite of stale, but the fix is good!
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 2/7] media: qcom: iris: fix state-change debug log printing stale value
2026-04-22 11:16 ` [PATCH 2/7] media: qcom: iris: fix state-change debug log printing stale value Dikshita Agarwal
2026-04-22 12:20 ` Konrad Dybcio
@ 2026-04-23 9:18 ` Bryan O'Donoghue
1 sibling, 0 replies; 22+ messages in thread
From: Bryan O'Donoghue @ 2026-04-23 9:18 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 22/04/2026 12:16, Dikshita Agarwal wrote:
> The state‑change debug log in iris_inst_change_state() always prints the
> same value for the old and new state, rendering it useless for
> debugging. This happens because the state is updated before the log is
> emitted.
>
> Log the transition before updating the state so the previous value is
> preserved, consistent with the existing sub‑state handling.
>
> Fixes: 11712ce70f8e ("media: iris: implement vb2 streaming ops")
> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
> ---
> drivers/media/platform/qcom/iris/iris_state.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/qcom/iris/iris_state.c b/drivers/media/platform/qcom/iris/iris_state.c
> index d14472414750dc7edc4834f32a51f2c5adc3762e..e991f34916ec6e74f3d2cf98bd61b8b1e12a3ca8 100644
> --- a/drivers/media/platform/qcom/iris/iris_state.c
> +++ b/drivers/media/platform/qcom/iris/iris_state.c
> @@ -60,9 +60,9 @@ int iris_inst_change_state(struct iris_inst *inst,
> return -EINVAL;
>
> change_state:
> - inst->state = request_state;
> dev_dbg(inst->core->dev, "state changed from %x to %x\n",
> inst->state, request_state);
> + inst->state = request_state;
>
> return 0;
> }
>
> --
> 2.34.1
>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 3/7] media: qcom: iris: Fix bitmask test in iris_allow_cmd()
2026-04-22 11:16 [PATCH 0/7] media: qcom: iris: miscellaneous code-quality fixes Dikshita Agarwal
2026-04-22 11:16 ` [PATCH 1/7] media: qcom: iris: Centralize internal buffer table selection Dikshita Agarwal
2026-04-22 11:16 ` [PATCH 2/7] media: qcom: iris: fix state-change debug log printing stale value Dikshita Agarwal
@ 2026-04-22 11:16 ` Dikshita Agarwal
2026-04-23 9:23 ` Bryan O'Donoghue
2026-04-22 11:16 ` [PATCH 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier() Dikshita Agarwal
` (3 subsequent siblings)
6 siblings, 1 reply; 22+ messages in thread
From: Dikshita Agarwal @ 2026-04-22 11:16 UTC (permalink / raw)
To: Vikash Garodia, Abhinav Kumar, Bryan O'Donoghue,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue,
Dikshita Agarwal
iris_allow_cmd() incorrectly tests a single sub‑state bit using a scalar
comparison. Since sub_state is a bitmask, this allows STOP to pass when
IRIS_INST_SUB_DRAIN is set alongside other bits, violating the intended
drain semantics. Fix this by using a proper bitmask test.
Fixes: d09100763bed ("media: iris: add support for drain sequence")
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
---
drivers/media/platform/qcom/iris/iris_state.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/platform/qcom/iris/iris_state.c b/drivers/media/platform/qcom/iris/iris_state.c
index e991f34916ec6e74f3d2cf98bd61b8b1e12a3ca8..5552725c614ea2e336e254898270302fafa646c3 100644
--- a/drivers/media/platform/qcom/iris/iris_state.c
+++ b/drivers/media/platform/qcom/iris/iris_state.c
@@ -269,7 +269,7 @@ bool iris_allow_cmd(struct iris_inst *inst, u32 cmd)
return true;
} else if (cmd == V4L2_DEC_CMD_STOP || cmd == V4L2_ENC_CMD_STOP) {
if (vb2_is_streaming(src_q))
- if (inst->sub_state != IRIS_INST_SUB_DRAIN)
+ if (!(inst->sub_state & IRIS_INST_SUB_DRAIN))
return true;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 3/7] media: qcom: iris: Fix bitmask test in iris_allow_cmd()
2026-04-22 11:16 ` [PATCH 3/7] media: qcom: iris: Fix bitmask test in iris_allow_cmd() Dikshita Agarwal
@ 2026-04-23 9:23 ` Bryan O'Donoghue
0 siblings, 0 replies; 22+ messages in thread
From: Bryan O'Donoghue @ 2026-04-23 9:23 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 22/04/2026 12:16, Dikshita Agarwal wrote:
> iris_allow_cmd() incorrectly tests a single sub‑state bit using a scalar
> comparison
I don't think scalar is the right term here. You're changing logical
comparison to bit-wise comparison.
Otherwise
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
bod
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier()
2026-04-22 11:16 [PATCH 0/7] media: qcom: iris: miscellaneous code-quality fixes Dikshita Agarwal
` (2 preceding siblings ...)
2026-04-22 11:16 ` [PATCH 3/7] media: qcom: iris: Fix bitmask test in iris_allow_cmd() Dikshita Agarwal
@ 2026-04-22 11:16 ` Dikshita Agarwal
2026-04-22 12:23 ` Konrad Dybcio
2026-04-23 9:25 ` Bryan O'Donoghue
2026-04-22 11:16 ` [PATCH 5/7] media: qcom: iris: Remove duplicate HFI_PROP_OPB_ENABLE entry Dikshita Agarwal
` (2 subsequent siblings)
6 siblings, 2 replies; 22+ messages in thread
From: Dikshita Agarwal @ 2026-04-22 11:16 UTC (permalink / raw)
To: Vikash Garodia, Abhinav Kumar, Bryan O'Donoghue,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue,
Dikshita Agarwal
Fold the ternary initialiser directly into the variable declaration,
removing the dead store that was immediately overwritten.
Fixes: 2af481a459a4 ("media: iris: Define AV1-specific platform capabilities and properties")
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
---
drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
index 30bfd90d423ba024caf6ececc827f7102e8f3324..06698fde639ec654ff9ec78a178271ab2284f5f0 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
@@ -536,10 +536,9 @@ static int iris_hfi_gen2_set_tier(struct iris_inst *inst, u32 plane)
{
u32 port = iris_hfi_gen2_get_port(inst, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE);
struct iris_inst_hfi_gen2 *inst_hfi_gen2 = to_iris_inst_hfi_gen2(inst);
- u32 tier = inst->fw_caps[TIER].value;
-
- tier = (inst->codec == V4L2_PIX_FMT_AV1) ? inst->fw_caps[TIER_AV1].value :
+ u32 tier = (inst->codec == V4L2_PIX_FMT_AV1) ? inst->fw_caps[TIER_AV1].value :
inst->fw_caps[TIER].value;
+
inst_hfi_gen2->src_subcr_params.tier = tier;
return iris_hfi_gen2_session_set_property(inst,
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier()
2026-04-22 11:16 ` [PATCH 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier() Dikshita Agarwal
@ 2026-04-22 12:23 ` Konrad Dybcio
2026-04-23 5:09 ` Dikshita Agarwal
2026-04-23 9:25 ` Bryan O'Donoghue
1 sibling, 1 reply; 22+ messages in thread
From: Konrad Dybcio @ 2026-04-22 12:23 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Hans Verkuil,
Stefan Schmidt, Hans Verkuil, Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 4/22/26 1:16 PM, Dikshita Agarwal wrote:
> Fold the ternary initialiser directly into the variable declaration,
> removing the dead store that was immediately overwritten.
>
> Fixes: 2af481a459a4 ("media: iris: Define AV1-specific platform capabilities and properties")
> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
> ---
> drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
> index 30bfd90d423ba024caf6ececc827f7102e8f3324..06698fde639ec654ff9ec78a178271ab2284f5f0 100644
> --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
> +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
> @@ -536,10 +536,9 @@ static int iris_hfi_gen2_set_tier(struct iris_inst *inst, u32 plane)
> {
> u32 port = iris_hfi_gen2_get_port(inst, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE);
> struct iris_inst_hfi_gen2 *inst_hfi_gen2 = to_iris_inst_hfi_gen2(inst);
> - u32 tier = inst->fw_caps[TIER].value;
> -
> - tier = (inst->codec == V4L2_PIX_FMT_AV1) ? inst->fw_caps[TIER_AV1].value :
> + u32 tier = (inst->codec == V4L2_PIX_FMT_AV1) ? inst->fw_caps[TIER_AV1].value :
> inst->fw_caps[TIER].value;
> +
Since you're touching this already, I think the cleanest way to handle
it would be to do 'tier_cap = (inst->codec == V4L2_PIX_FMT_AV1) ? TIER_AV1 : TIER`
and then use that index
Also, the namespacing here is mediocre - "TIER" doesn't indicate it's an index
of the fw caps array
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier()
2026-04-22 12:23 ` Konrad Dybcio
@ 2026-04-23 5:09 ` Dikshita Agarwal
0 siblings, 0 replies; 22+ messages in thread
From: Dikshita Agarwal @ 2026-04-23 5:09 UTC (permalink / raw)
To: Konrad Dybcio, Vikash Garodia, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Hans Verkuil,
Stefan Schmidt, Hans Verkuil, Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 4/22/2026 5:53 PM, Konrad Dybcio wrote:
> On 4/22/26 1:16 PM, Dikshita Agarwal wrote:
>> Fold the ternary initialiser directly into the variable declaration,
>> removing the dead store that was immediately overwritten.
>>
>> Fixes: 2af481a459a4 ("media: iris: Define AV1-specific platform capabilities and properties")
>> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
>> ---
>> drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c | 5 ++---
>> 1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>> index 30bfd90d423ba024caf6ececc827f7102e8f3324..06698fde639ec654ff9ec78a178271ab2284f5f0 100644
>> --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>> +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>> @@ -536,10 +536,9 @@ static int iris_hfi_gen2_set_tier(struct iris_inst *inst, u32 plane)
>> {
>> u32 port = iris_hfi_gen2_get_port(inst, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE);
>> struct iris_inst_hfi_gen2 *inst_hfi_gen2 = to_iris_inst_hfi_gen2(inst);
>> - u32 tier = inst->fw_caps[TIER].value;
>> -
>> - tier = (inst->codec == V4L2_PIX_FMT_AV1) ? inst->fw_caps[TIER_AV1].value :
>> + u32 tier = (inst->codec == V4L2_PIX_FMT_AV1) ? inst->fw_caps[TIER_AV1].value :
>> inst->fw_caps[TIER].value;
>> +
>
> Since you're touching this already, I think the cleanest way to handle
> it would be to do 'tier_cap = (inst->codec == V4L2_PIX_FMT_AV1) ? TIER_AV1 : TIER`
> and then use that index
Ack.
>
> Also, the namespacing here is mediocre - "TIER" doesn't indicate it's an index
> of the fw caps array
For now, I’d prefer to keep the existing TIER / TIER_AV1 naming, as many
other fw caps follow the same pattern and renaming them would cause
unrelated churn. Happy to revisit naming consistency as a separate cleanup.
Thanks,
Dikshita
>
> Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier()
2026-04-22 11:16 ` [PATCH 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier() Dikshita Agarwal
2026-04-22 12:23 ` Konrad Dybcio
@ 2026-04-23 9:25 ` Bryan O'Donoghue
2026-04-23 9:52 ` Dikshita Agarwal
1 sibling, 1 reply; 22+ messages in thread
From: Bryan O'Donoghue @ 2026-04-23 9:25 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 22/04/2026 12:16, Dikshita Agarwal wrote:
> Fold the ternary initialiser directly into the variable declaration,
> removing the dead store that was immediately overwritten.
>
> Fixes: 2af481a459a4 ("media: iris: Define AV1-specific platform capabilities and properties")
> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
> ---
> drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
> index 30bfd90d423ba024caf6ececc827f7102e8f3324..06698fde639ec654ff9ec78a178271ab2284f5f0 100644
> --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
> +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
> @@ -536,10 +536,9 @@ static int iris_hfi_gen2_set_tier(struct iris_inst *inst, u32 plane)
> {
> u32 port = iris_hfi_gen2_get_port(inst, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE);
> struct iris_inst_hfi_gen2 *inst_hfi_gen2 = to_iris_inst_hfi_gen2(inst);
> - u32 tier = inst->fw_caps[TIER].value;
> -
> - tier = (inst->codec == V4L2_PIX_FMT_AV1) ? inst->fw_caps[TIER_AV1].value :
> + u32 tier = (inst->codec == V4L2_PIX_FMT_AV1) ? inst->fw_caps[TIER_AV1].value :
> inst->fw_caps[TIER].value;
> +
> inst_hfi_gen2->src_subcr_params.tier = tier;
>
> return iris_hfi_gen2_session_set_property(inst,
>
> --
> 2.34.1
>
I don't get it.
What's the bug ?
---
bod
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier()
2026-04-23 9:25 ` Bryan O'Donoghue
@ 2026-04-23 9:52 ` Dikshita Agarwal
0 siblings, 0 replies; 22+ messages in thread
From: Dikshita Agarwal @ 2026-04-23 9:52 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikash Garodia, Abhinav Kumar,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 4/23/2026 2:55 PM, Bryan O'Donoghue wrote:
> On 22/04/2026 12:16, Dikshita Agarwal wrote:
>> Fold the ternary initialiser directly into the variable declaration,
>> removing the dead store that was immediately overwritten.
>>
>> Fixes: 2af481a459a4 ("media: iris: Define AV1-specific platform
>> capabilities and properties")
>> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
>> ---
>> drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c | 5 ++---
>> 1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>> b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>> index
>> 30bfd90d423ba024caf6ececc827f7102e8f3324..06698fde639ec654ff9ec78a178271ab2284f5f0 100644
>> --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>> +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>> @@ -536,10 +536,9 @@ static int iris_hfi_gen2_set_tier(struct iris_inst
>> *inst, u32 plane)
>> {
>> u32 port = iris_hfi_gen2_get_port(inst,
>> V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE);
>> struct iris_inst_hfi_gen2 *inst_hfi_gen2 =
>> to_iris_inst_hfi_gen2(inst);
>> - u32 tier = inst->fw_caps[TIER].value;
>> -
>> - tier = (inst->codec == V4L2_PIX_FMT_AV1) ?
>> inst->fw_caps[TIER_AV1].value :
>> + u32 tier = (inst->codec == V4L2_PIX_FMT_AV1) ?
>> inst->fw_caps[TIER_AV1].value :
>> inst->fw_caps[TIER].value;
>> +
>> inst_hfi_gen2->src_subcr_params.tier = tier;
>>
>> return iris_hfi_gen2_session_set_property(inst,
>>
>> --
>> 2.34.1
>>
>
> I don't get it.
>
> What's the bug ?
It's not a bug, just removing the dead assignment.
Will remove fixes tag.
Thanks,
Dikshita
>
> ---
> bod
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 5/7] media: qcom: iris: Remove duplicate HFI_PROP_OPB_ENABLE entry
2026-04-22 11:16 [PATCH 0/7] media: qcom: iris: miscellaneous code-quality fixes Dikshita Agarwal
` (3 preceding siblings ...)
2026-04-22 11:16 ` [PATCH 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier() Dikshita Agarwal
@ 2026-04-22 11:16 ` Dikshita Agarwal
2026-04-22 12:25 ` Konrad Dybcio
2026-04-22 11:16 ` [PATCH 6/7] media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec() Dikshita Agarwal
2026-04-22 11:16 ` [PATCH 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void Dikshita Agarwal
6 siblings, 1 reply; 22+ messages in thread
From: Dikshita Agarwal @ 2026-04-22 11:16 UTC (permalink / raw)
To: Vikash Garodia, Abhinav Kumar, Bryan O'Donoghue,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue,
Dikshita Agarwal
HFI_PROP_OPB_ENABLE/iris_hfi_gen2_set_opb_enable appeared twice in the
dispatch table, causing the property to be sent to firmware twice on every
config-params call.
Fixes: 2af481a459a4 ("media: iris: Define AV1-specific platform capabilities and properties")
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
---
drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
index 06698fde639ec654ff9ec78a178271ab2284f5f0..dc7acde1913e65eb39734702cb164bb26b8ea6c2 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
@@ -623,7 +623,6 @@ static int iris_hfi_gen2_session_set_config_params(struct iris_inst *inst, u32 p
{HFI_PROP_FRAME_RATE, iris_hfi_gen2_set_frame_rate },
{HFI_PROP_AV1_FILM_GRAIN_PRESENT, iris_hfi_gen2_set_film_grain },
{HFI_PROP_AV1_SUPER_BLOCK_ENABLED, iris_hfi_gen2_set_super_block },
- {HFI_PROP_OPB_ENABLE, iris_hfi_gen2_set_opb_enable },
};
if (inst->domain == DECODER) {
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 5/7] media: qcom: iris: Remove duplicate HFI_PROP_OPB_ENABLE entry
2026-04-22 11:16 ` [PATCH 5/7] media: qcom: iris: Remove duplicate HFI_PROP_OPB_ENABLE entry Dikshita Agarwal
@ 2026-04-22 12:25 ` Konrad Dybcio
0 siblings, 0 replies; 22+ messages in thread
From: Konrad Dybcio @ 2026-04-22 12:25 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Hans Verkuil,
Stefan Schmidt, Hans Verkuil, Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 4/22/26 1:16 PM, Dikshita Agarwal wrote:
> HFI_PROP_OPB_ENABLE/iris_hfi_gen2_set_opb_enable appeared twice in the
> dispatch table, causing the property to be sent to firmware twice on every
> config-params call.
>
> Fixes: 2af481a459a4 ("media: iris: Define AV1-specific platform capabilities and properties")
> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 6/7] media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec()
2026-04-22 11:16 [PATCH 0/7] media: qcom: iris: miscellaneous code-quality fixes Dikshita Agarwal
` (4 preceding siblings ...)
2026-04-22 11:16 ` [PATCH 5/7] media: qcom: iris: Remove duplicate HFI_PROP_OPB_ENABLE entry Dikshita Agarwal
@ 2026-04-22 11:16 ` Dikshita Agarwal
2026-04-22 12:25 ` Konrad Dybcio
2026-04-23 9:32 ` Bryan O'Donoghue
2026-04-22 11:16 ` [PATCH 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void Dikshita Agarwal
6 siblings, 2 replies; 22+ messages in thread
From: Dikshita Agarwal @ 2026-04-22 11:16 UTC (permalink / raw)
To: Vikash Garodia, Abhinav Kumar, Bryan O'Donoghue,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue,
Dikshita Agarwal
Without the break the AV1 case falls through, risking unintended behaviour
if new cases are added after it.
Fixes: 2af481a459a4 ("media: iris: Define AV1-specific platform capabilities and properties")
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
---
drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
index dc7acde1913e65eb39734702cb164bb26b8ea6c2..494c8d9fe14b4d347fcc3bb3cfe494365de360d3 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
@@ -696,6 +696,7 @@ static int iris_hfi_gen2_session_set_codec(struct iris_inst *inst)
break;
case V4L2_PIX_FMT_AV1:
codec = HFI_CODEC_DECODE_AV1;
+ break;
}
iris_hfi_gen2_packet_session_property(inst,
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 6/7] media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec()
2026-04-22 11:16 ` [PATCH 6/7] media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec() Dikshita Agarwal
@ 2026-04-22 12:25 ` Konrad Dybcio
2026-04-23 9:32 ` Bryan O'Donoghue
1 sibling, 0 replies; 22+ messages in thread
From: Konrad Dybcio @ 2026-04-22 12:25 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Hans Verkuil,
Stefan Schmidt, Hans Verkuil, Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 4/22/26 1:16 PM, Dikshita Agarwal wrote:
> Without the break the AV1 case falls through, risking unintended behaviour
> if new cases are added after it.
>
> Fixes: 2af481a459a4 ("media: iris: Define AV1-specific platform capabilities and properties")
> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
> ---
'fixes' is debatable here but anyway
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 6/7] media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec()
2026-04-22 11:16 ` [PATCH 6/7] media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec() Dikshita Agarwal
2026-04-22 12:25 ` Konrad Dybcio
@ 2026-04-23 9:32 ` Bryan O'Donoghue
1 sibling, 0 replies; 22+ messages in thread
From: Bryan O'Donoghue @ 2026-04-23 9:32 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 22/04/2026 12:16, Dikshita Agarwal wrote:
> Without the break the AV1 case falls through, risking unintended behaviour
> if new cases are added after it.
>
> Fixes: 2af481a459a4 ("media: iris: Define AV1-specific platform capabilities and properties")
> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
> ---
> drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
> index dc7acde1913e65eb39734702cb164bb26b8ea6c2..494c8d9fe14b4d347fcc3bb3cfe494365de360d3 100644
> --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
> +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
> @@ -696,6 +696,7 @@ static int iris_hfi_gen2_session_set_codec(struct iris_inst *inst)
> break;
> case V4L2_PIX_FMT_AV1:
> codec = HFI_CODEC_DECODE_AV1;
> + break;
> }
>
> iris_hfi_gen2_packet_session_property(inst,
>
> --
> 2.34.1
>
I don't think this is really a bug.
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
bod
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void
2026-04-22 11:16 [PATCH 0/7] media: qcom: iris: miscellaneous code-quality fixes Dikshita Agarwal
` (5 preceding siblings ...)
2026-04-22 11:16 ` [PATCH 6/7] media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec() Dikshita Agarwal
@ 2026-04-22 11:16 ` Dikshita Agarwal
2026-04-22 12:26 ` Konrad Dybcio
` (2 more replies)
6 siblings, 3 replies; 22+ messages in thread
From: Dikshita Agarwal @ 2026-04-22 11:16 UTC (permalink / raw)
To: Vikash Garodia, Abhinav Kumar, Bryan O'Donoghue,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue,
Dikshita Agarwal
iris_destroy_internal_buffer() is guaranteed to succeed and never
reports an error. Returning an int is misleading and forces callers to
handle a meaningless status value. Convert it to return void to match
its behavior and simplify callers.
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
---
drivers/media/platform/qcom/iris/iris_buffer.c | 16 ++++------------
drivers/media/platform/qcom/iris/iris_buffer.h | 2 +-
drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c | 2 +-
.../media/platform/qcom/iris/iris_hfi_gen2_response.c | 4 +++-
4 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/drivers/media/platform/qcom/iris/iris_buffer.c b/drivers/media/platform/qcom/iris/iris_buffer.c
index 137a69c99bcc24a72f4f27e516b8fb4d6509c0ad..2da0498843595d3071040d45f1e605f8814f87a2 100644
--- a/drivers/media/platform/qcom/iris/iris_buffer.c
+++ b/drivers/media/platform/qcom/iris/iris_buffer.c
@@ -455,7 +455,7 @@ int iris_queue_internal_buffers(struct iris_inst *inst, u32 plane)
return 0;
}
-int iris_destroy_internal_buffer(struct iris_inst *inst, struct iris_buffer *buffer)
+void iris_destroy_internal_buffer(struct iris_inst *inst, struct iris_buffer *buffer)
{
struct iris_core *core = inst->core;
@@ -463,8 +463,6 @@ int iris_destroy_internal_buffer(struct iris_inst *inst, struct iris_buffer *buf
dma_free_attrs(core->dev, buffer->buffer_size, buffer->kvaddr,
buffer->device_addr, buffer->dma_attrs);
kfree(buffer);
-
- return 0;
}
static int iris_destroy_internal_buffers(struct iris_inst *inst, u32 plane, bool force)
@@ -473,7 +471,6 @@ static int iris_destroy_internal_buffers(struct iris_inst *inst, u32 plane, bool
struct iris_buffers *buffers;
const u32 *internal_buf_type;
u32 i, len;
- int ret;
iris_get_int_buf_tbl(inst, plane, &internal_buf_type, &len);
@@ -488,9 +485,7 @@ static int iris_destroy_internal_buffers(struct iris_inst *inst, u32 plane, bool
if (!force && buf->attr & BUF_ATTR_QUEUED)
continue;
- ret = iris_destroy_internal_buffer(inst, buf);
- if (ret)
- return ret;
+ iris_destroy_internal_buffer(inst, buf);
}
}
@@ -500,11 +495,8 @@ static int iris_destroy_internal_buffers(struct iris_inst *inst, u32 plane, bool
else
buffers = &inst->buffers[BUF_ARP];
- list_for_each_entry_safe(buf, next, &buffers->list, list) {
- ret = iris_destroy_internal_buffer(inst, buf);
- if (ret)
- return ret;
- }
+ list_for_each_entry_safe(buf, next, &buffers->list, list)
+ iris_destroy_internal_buffer(inst, buf);
}
return 0;
diff --git a/drivers/media/platform/qcom/iris/iris_buffer.h b/drivers/media/platform/qcom/iris/iris_buffer.h
index 75bb767761824c4c02e0df9b765896cc093be333..ab8e5d953101a786ade20540ee3c3ed226160cbe 100644
--- a/drivers/media/platform/qcom/iris/iris_buffer.h
+++ b/drivers/media/platform/qcom/iris/iris_buffer.h
@@ -112,7 +112,7 @@ void iris_get_internal_buffers(struct iris_inst *inst, u32 plane);
int iris_create_internal_buffers(struct iris_inst *inst, u32 plane);
int iris_queue_internal_buffers(struct iris_inst *inst, u32 plane);
int iris_queue_internal_deferred_buffers(struct iris_inst *inst, enum iris_buffer_type buffer_type);
-int iris_destroy_internal_buffer(struct iris_inst *inst, struct iris_buffer *buffer);
+void iris_destroy_internal_buffer(struct iris_inst *inst, struct iris_buffer *buffer);
int iris_destroy_all_internal_buffers(struct iris_inst *inst, u32 plane);
int iris_destroy_dequeued_internal_buffers(struct iris_inst *inst, u32 plane);
int iris_alloc_and_queue_persist_bufs(struct iris_inst *inst, enum iris_buffer_type buf_type);
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c
index e42d17653c2c37f526e6b26c6e29cc45ae29a747..d1114e5ce7788c5e803ac7aec505a6115997eb27 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c
@@ -442,7 +442,7 @@ static int iris_hfi_gen1_session_unset_buffers(struct iris_inst *inst, struct ir
ret = iris_wait_for_session_response(inst, false);
if (!ret)
- ret = iris_destroy_internal_buffer(inst, buf);
+ iris_destroy_internal_buffer(inst, buf);
exit:
kfree(pkt);
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 8e19f61bbbf9e427f658471b4502bedb1ad5f616..f5c342f4c926a68b2017006a3c1cfbb251605ae0 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c
@@ -447,7 +447,9 @@ static int iris_hfi_gen2_handle_release_internal_buffer(struct iris_inst *inst,
buf->attr &= ~BUF_ATTR_QUEUED;
- return iris_destroy_internal_buffer(inst, buf);
+ iris_destroy_internal_buffer(inst, buf);
+
+ return 0;
}
static int iris_hfi_gen2_handle_session_stop(struct iris_inst *inst,
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void
2026-04-22 11:16 ` [PATCH 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void Dikshita Agarwal
@ 2026-04-22 12:26 ` Konrad Dybcio
2026-04-22 12:26 ` Konrad Dybcio
2026-04-23 9:42 ` Bryan O'Donoghue
2 siblings, 0 replies; 22+ messages in thread
From: Konrad Dybcio @ 2026-04-22 12:26 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Hans Verkuil,
Stefan Schmidt, Hans Verkuil, Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 4/22/26 1:16 PM, Dikshita Agarwal wrote:
> iris_destroy_internal_buffer() is guaranteed to succeed and never
> reports an error. Returning an int is misleading and forces callers to
> handle a meaningless status value. Convert it to return void to match
> its behavior and simplify callers.
>
> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void
2026-04-22 11:16 ` [PATCH 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void Dikshita Agarwal
2026-04-22 12:26 ` Konrad Dybcio
@ 2026-04-22 12:26 ` Konrad Dybcio
2026-04-23 9:42 ` Bryan O'Donoghue
2 siblings, 0 replies; 22+ messages in thread
From: Konrad Dybcio @ 2026-04-22 12:26 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Hans Verkuil,
Stefan Schmidt, Hans Verkuil, Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 4/22/26 1:16 PM, Dikshita Agarwal wrote:
> iris_destroy_internal_buffer() is guaranteed to succeed and never
> reports an error. Returning an int is misleading and forces callers to
> handle a meaningless status value. Convert it to return void to match
> its behavior and simplify callers.
>
> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
> ---
iris_destroy_internal_buffers() can be made void too, now
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void
2026-04-22 11:16 ` [PATCH 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void Dikshita Agarwal
2026-04-22 12:26 ` Konrad Dybcio
2026-04-22 12:26 ` Konrad Dybcio
@ 2026-04-23 9:42 ` Bryan O'Donoghue
2 siblings, 0 replies; 22+ messages in thread
From: Bryan O'Donoghue @ 2026-04-23 9:42 UTC (permalink / raw)
To: Dikshita Agarwal, Vikash Garodia, Abhinav Kumar,
Mauro Carvalho Chehab, Hans Verkuil, Stefan Schmidt, Hans Verkuil,
Deepa Guthyappa Madivalara
Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue
On 22/04/2026 12:16, Dikshita Agarwal wrote:
> iris_destroy_internal_buffer() is guaranteed to succeed and never
> reports an error. Returning an int is misleading and forces callers to
> handle a meaningless status value. Convert it to return void to match
> its behavior and simplify callers.
>
> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
> ---
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
bod
^ permalink raw reply [flat|nested] 22+ messages in thread