Re: [PATCH v3 5/7] media: iris: add helper to select context bank device
From: Dmitry Baryshkov
Date: Fri Mar 13 2026 - 11:48:38 EST
On Fri, Mar 13, 2026 at 06:49:39PM +0530, Vikash Garodia wrote:
> Depending on the buffer type (input, output, internal and interface
> queues), associated context bank is selected, if available. Fallback to
> parent device for backward compatibility.
>
> Co-developed-by: Vishnu Reddy <busanna.reddy@xxxxxxxxxxxxxxxx>
> Signed-off-by: Vishnu Reddy <busanna.reddy@xxxxxxxxxxxxxxxx>
> Signed-off-by: Vikash Garodia <vikash.garodia@xxxxxxxxxxxxxxxx>
> ---
> drivers/media/platform/qcom/iris/iris_buffer.c | 7 ++--
> drivers/media/platform/qcom/iris/iris_hfi_queue.c | 16 +++++----
> drivers/media/platform/qcom/iris/iris_resources.c | 41 +++++++++++++++++++++++
> drivers/media/platform/qcom/iris/iris_resources.h | 2 ++
> drivers/media/platform/qcom/iris/iris_vidc.c | 4 +--
> 5 files changed, 58 insertions(+), 12 deletions(-)
>
> @@ -187,3 +188,43 @@ int iris_create_child_device_and_map(struct iris_core *core, const struct iris_c
>
> return 0;
> }
> +
> +enum iris_buffer_region iris_get_region(struct iris_inst *inst, enum iris_buffer_type buffer_type)
> +{
> + switch (buffer_type) {
> + case BUF_INPUT:
> + if (inst->domain == ENCODER)
> + return IRIS_PIXEL_REGION;
> + else
> + return IRIS_BITSTREAM_REGION;
> + case BUF_OUTPUT:
> + if (inst->domain == ENCODER)
> + return IRIS_BITSTREAM_REGION;
> + else
> + return IRIS_PIXEL_REGION;
> + case BUF_BIN:
> + return IRIS_BITSTREAM_REGION;
> + case BUF_DPB:
> + case BUF_PARTIAL:
> + case BUF_SCRATCH_2:
> + case BUF_VPSS:
> + return IRIS_PIXEL_REGION;
> + case BUF_ARP:
> + case BUF_COMV:
> + case BUF_LINE:
> + case BUF_NON_COMV:
> + case BUF_PERSIST:
> + return IRIS_NON_PIXEL_REGION;
> + default:
> + dev_err(inst->core->dev, "unknown buffer type: %d\n", buffer_type);
> + return IRIS_UNKNOWN_REGION;
> + }
> +}
> +
> +struct device *iris_get_cb_dev(struct iris_core *core, enum iris_buffer_region region)
Are you going to call these two functions separately? If not, it's
easier to squash them.
> +{
> + if (core->cb_devs[region])
> + return core->cb_devs[region];
> +
> + return core->dev;
> +}
--
With best wishes
Dmitry