* [PATCH v3 0/7] media: qcom: iris: miscellaneous code-quality fixes
@ 2026-05-31 5:50 Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 1/7] media: qcom: iris: Centralize internal buffer table selection Vishnu Reddy
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Vishnu Reddy @ 2026-05-31 5:50 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, 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,
Vishnu Reddy, Konrad Dybcio
This series addresses a set of independent code-quality issues found
during review of the Qualcomm iris video driver.
No functional changes are intended.
Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>
---
Changes in v3:
- Rebased and resolved merge conflicts (Bryan)
- Link to v2: https://lore.kernel.org/r/20260423-iris-code-improvement-v2-0-9e9cbf00f9c9@oss.qualcomm.com
Changes in v2:
- Updated variables names for iris_get_int_buf_tbl helper (Bryan)
- Removed un-necessary fixes tags (Bryan, Konrad)
- Addressed other comments (Bryan, Konrad)
- Link to v1: https://lore.kernel.org/r/20260422-iris-code-improvement-v1-0-8e150482212d@oss.qualcomm.com
---
Dikshita Agarwal (7):
media: qcom: iris: Centralize internal buffer table selection
media: qcom: iris: fix state-change debug log printing stale value
media: qcom: iris: Fix bitmask test in iris_allow_cmd()
media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier()
media: qcom: iris: Remove duplicate HFI_PROP_OPB_ENABLE entry
media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec()
media: qcom: iris: Make iris_destroy_internal_buffer() return void
drivers/media/platform/qcom/iris/iris_buffer.c | 123 +++++----------------
drivers/media/platform/qcom/iris/iris_buffer.h | 2 +-
.../platform/qcom/iris/iris_hfi_gen1_command.c | 2 +-
.../platform/qcom/iris/iris_hfi_gen2_command.c | 7 +-
.../platform/qcom/iris/iris_hfi_gen2_response.c | 4 +-
drivers/media/platform/qcom/iris/iris_state.c | 4 +-
6 files changed, 40 insertions(+), 102 deletions(-)
---
base-commit: a96fcde9fa9a6696991d1f172a8bc2bade82a6d9
change-id: 20260531-iris-code-improvement-48aafaec4b1d
Best regards,
--
Vishnu Reddy <busanna.reddy@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 1/7] media: qcom: iris: Centralize internal buffer table selection
2026-05-31 5:50 [PATCH v3 0/7] media: qcom: iris: miscellaneous code-quality fixes Vishnu Reddy
@ 2026-05-31 5:50 ` Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 2/7] media: qcom: iris: fix state-change debug log printing stale value Vishnu Reddy
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Vishnu Reddy @ 2026-05-31 5:50 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, 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,
Vishnu Reddy
From: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
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.
Reviewed-by: Bryan O'Donoghue <bod@kernel.org>
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Signed-off-by: Vishnu Reddy <busanna.reddy@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 ef7f6f931557..73b4d3381e47 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 **internal_buf_type, u32 *internal_buffer_count)
{
const struct iris_firmware_data *firmware_data = inst->core->iris_firmware_data;
- const u32 *internal_buf_type;
- u32 internal_buffer_count, i;
if (inst->domain == DECODER) {
if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = firmware_data->dec_ip_int_buf_tbl;
- internal_buffer_count = firmware_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]);
+ *internal_buf_type = firmware_data->dec_ip_int_buf_tbl;
+ *internal_buffer_count = firmware_data->dec_ip_int_buf_tbl_size;
} else {
- internal_buf_type = firmware_data->dec_op_int_buf_tbl;
- internal_buffer_count = firmware_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]);
+ *internal_buf_type = firmware_data->dec_op_int_buf_tbl;
+ *internal_buffer_count = firmware_data->dec_op_int_buf_tbl_size;
}
} else {
if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = firmware_data->enc_ip_int_buf_tbl;
- internal_buffer_count = firmware_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]);
+ *internal_buf_type = firmware_data->enc_ip_int_buf_tbl;
+ *internal_buffer_count = firmware_data->enc_ip_int_buf_tbl_size;
} else {
- internal_buf_type = firmware_data->enc_op_int_buf_tbl;
- internal_buffer_count = firmware_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]);
+ *internal_buf_type = firmware_data->enc_op_int_buf_tbl;
+ *internal_buffer_count = firmware_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_firmware_data *firmware_data = inst->core->iris_firmware_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 = firmware_data->dec_ip_int_buf_tbl;
- internal_buffer_count = firmware_data->dec_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = firmware_data->dec_op_int_buf_tbl;
- internal_buffer_count = firmware_data->dec_op_int_buf_tbl_size;
- }
- } else {
- if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = firmware_data->enc_ip_int_buf_tbl;
- internal_buffer_count = firmware_data->enc_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = firmware_data->enc_op_int_buf_tbl;
- internal_buffer_count = firmware_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_firmware_data *firmware_data = inst->core->iris_firmware_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 = firmware_data->dec_ip_int_buf_tbl;
- internal_buffer_count = firmware_data->dec_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = firmware_data->dec_op_int_buf_tbl;
- internal_buffer_count = firmware_data->dec_op_int_buf_tbl_size;
- }
- } else {
- if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = firmware_data->enc_ip_int_buf_tbl;
- internal_buffer_count = firmware_data->enc_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = firmware_data->enc_op_int_buf_tbl;
- internal_buffer_count = firmware_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_firmware_data *firmware_data = inst->core->iris_firmware_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 = firmware_data->dec_ip_int_buf_tbl;
- len = firmware_data->dec_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = firmware_data->dec_op_int_buf_tbl;
- len = firmware_data->dec_op_int_buf_tbl_size;
- }
- } else {
- if (V4L2_TYPE_IS_OUTPUT(plane)) {
- internal_buf_type = firmware_data->enc_ip_int_buf_tbl;
- len = firmware_data->enc_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = firmware_data->enc_op_int_buf_tbl;
- len = firmware_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_firmware_data *firmware_data = inst->core->iris_firmware_data;
const u32 *internal_buf_type;
u32 internal_buffer_count, i;
int ret;
- if (inst->domain == DECODER) {
- internal_buf_type = firmware_data->dec_ip_int_buf_tbl;
- internal_buffer_count = firmware_data->dec_ip_int_buf_tbl_size;
- } else {
- internal_buf_type = firmware_data->enc_ip_int_buf_tbl;
- internal_buffer_count = firmware_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 [flat|nested] 8+ messages in thread
* [PATCH v3 2/7] media: qcom: iris: fix state-change debug log printing stale value
2026-05-31 5:50 [PATCH v3 0/7] media: qcom: iris: miscellaneous code-quality fixes Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 1/7] media: qcom: iris: Centralize internal buffer table selection Vishnu Reddy
@ 2026-05-31 5:50 ` Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 3/7] media: qcom: iris: Fix bitmask test in iris_allow_cmd() Vishnu Reddy
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Vishnu Reddy @ 2026-05-31 5:50 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, 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,
Vishnu Reddy, Konrad Dybcio
From: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
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")
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Signed-off-by: Vishnu Reddy <busanna.reddy@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 d14472414750..e991f34916ec 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 [flat|nested] 8+ messages in thread
* [PATCH v3 3/7] media: qcom: iris: Fix bitmask test in iris_allow_cmd()
2026-05-31 5:50 [PATCH v3 0/7] media: qcom: iris: miscellaneous code-quality fixes Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 1/7] media: qcom: iris: Centralize internal buffer table selection Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 2/7] media: qcom: iris: fix state-change debug log printing stale value Vishnu Reddy
@ 2026-05-31 5:50 ` Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier() Vishnu Reddy
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Vishnu Reddy @ 2026-05-31 5:50 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, 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,
Vishnu Reddy
From: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
iris_allow_cmd() incorrectly checks a sub‑state flag using a logical
equality 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")
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Signed-off-by: Vishnu Reddy <busanna.reddy@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 e991f34916ec..5552725c614e 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 [flat|nested] 8+ messages in thread
* [PATCH v3 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier()
2026-05-31 5:50 [PATCH v3 0/7] media: qcom: iris: miscellaneous code-quality fixes Vishnu Reddy
` (2 preceding siblings ...)
2026-05-31 5:50 ` [PATCH v3 3/7] media: qcom: iris: Fix bitmask test in iris_allow_cmd() Vishnu Reddy
@ 2026-05-31 5:50 ` Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 5/7] media: qcom: iris: Remove duplicate HFI_PROP_OPB_ENABLE entry Vishnu Reddy
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Vishnu Reddy @ 2026-05-31 5:50 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, 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,
Vishnu Reddy
From: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Fold the ternary initialiser directly into the variable declaration,
removing the dead store that was immediately overwritten.
Reviewed-by: Bryan O'Donoghue <bod@kernel.org>
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Signed-off-by: Vishnu Reddy <busanna.reddy@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 c90b22a75bc5..fe67ad0ffb4f 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;
+ u32 tier_cap = (inst->codec == V4L2_PIX_FMT_AV1) ? TIER_AV1 : TIER;
+ u32 tier = inst->fw_caps[tier_cap].value;
- 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 [flat|nested] 8+ messages in thread
* [PATCH v3 5/7] media: qcom: iris: Remove duplicate HFI_PROP_OPB_ENABLE entry
2026-05-31 5:50 [PATCH v3 0/7] media: qcom: iris: miscellaneous code-quality fixes Vishnu Reddy
` (3 preceding siblings ...)
2026-05-31 5:50 ` [PATCH v3 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier() Vishnu Reddy
@ 2026-05-31 5:50 ` Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 6/7] media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec() Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void Vishnu Reddy
6 siblings, 0 replies; 8+ messages in thread
From: Vishnu Reddy @ 2026-05-31 5:50 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, 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,
Vishnu Reddy, Konrad Dybcio
From: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
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")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Signed-off-by: Vishnu Reddy <busanna.reddy@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 fe67ad0ffb4f..516bc468c72c 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 [flat|nested] 8+ messages in thread
* [PATCH v3 6/7] media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec()
2026-05-31 5:50 [PATCH v3 0/7] media: qcom: iris: miscellaneous code-quality fixes Vishnu Reddy
` (4 preceding siblings ...)
2026-05-31 5:50 ` [PATCH v3 5/7] media: qcom: iris: Remove duplicate HFI_PROP_OPB_ENABLE entry Vishnu Reddy
@ 2026-05-31 5:50 ` Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void Vishnu Reddy
6 siblings, 0 replies; 8+ messages in thread
From: Vishnu Reddy @ 2026-05-31 5:50 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, 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,
Vishnu Reddy, Konrad Dybcio
From: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Without the break the AV1 case falls through, risking unintended behaviour
if new cases are added after it.
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Signed-off-by: Vishnu Reddy <busanna.reddy@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 516bc468c72c..1d21ddd84f41 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 [flat|nested] 8+ messages in thread
* [PATCH v3 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void
2026-05-31 5:50 [PATCH v3 0/7] media: qcom: iris: miscellaneous code-quality fixes Vishnu Reddy
` (5 preceding siblings ...)
2026-05-31 5:50 ` [PATCH v3 6/7] media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec() Vishnu Reddy
@ 2026-05-31 5:50 ` Vishnu Reddy
6 siblings, 0 replies; 8+ messages in thread
From: Vishnu Reddy @ 2026-05-31 5:50 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, 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,
Vishnu Reddy, Konrad Dybcio
From: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
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.
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Signed-off-by: Vishnu Reddy <busanna.reddy@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 73b4d3381e47..2a4a813c9c57 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 75bb76776182..ab8e5d953101 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 83373862655f..e6fd38ad8e36 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 c350d231265e..917d2775612c 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 [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-05-31 5:56 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-31 5:50 [PATCH v3 0/7] media: qcom: iris: miscellaneous code-quality fixes Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 1/7] media: qcom: iris: Centralize internal buffer table selection Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 2/7] media: qcom: iris: fix state-change debug log printing stale value Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 3/7] media: qcom: iris: Fix bitmask test in iris_allow_cmd() Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 4/7] media: qcom: iris: Remove dead assignment in iris_hfi_gen2_set_tier() Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 5/7] media: qcom: iris: Remove duplicate HFI_PROP_OPB_ENABLE entry Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 6/7] media: qcom: iris: Add missing break in iris_hfi_gen2_session_set_codec() Vishnu Reddy
2026-05-31 5:50 ` [PATCH v3 7/7] media: qcom: iris: Make iris_destroy_internal_buffer() return void Vishnu Reddy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®