Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder

Dikshita Agarwal
2025-11-25T08:30:03Z

On 11/22/2025 12:13 AM, Jorge Ramirez-Ortiz wrote:
> The Venus encoder and decoder video devices currently report the same
> bus_info string ("platform:qcom-venus").
>
> Assign unique bus_info identifiers by appending ":dec" and ":enc" to the
> parent device name. With this change v4l2-ctl will display two separate
> logical devices
>
> Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez@oss.qualcomm.com>
> ---
> drivers/media/platform/qcom/venus/vdec.c | 5 +++++
> drivers/media/platform/qcom/venus/venc.c | 5 +++++
> 2 files changed, 10 insertions(+)
>
> diff --git a/drivers/media/platform/qcom/venus/vdec.c b/drivers/media/platform/qcom/venus/vdec.c
> index 4a6641fdffcf..63f6ae1ff6ac 100644
> --- a/drivers/media/platform/qcom/venus/vdec.c
> +++ b/drivers/media/platform/qcom/venus/vdec.c
> @@ -433,9 +433,14 @@ vdec_g_selection(struct file *file, void *fh, struct v4l2_selection *s)
> static int
> vdec_querycap(struct file *file, void *fh, struct v4l2_capability *cap)
> {
> + struct venus_inst *inst = to_inst(file);
> + struct venus_core *core = inst->core;
> +
> strscpy(cap->driver, "qcom-venus", sizeof(cap->driver));
> strscpy(cap->card, "Qualcomm Venus video decoder", sizeof(cap->card));
> strscpy(cap->bus_info, "platform:qcom-venus", sizeof(cap->bus_info));
> + snprintf(cap->bus_info, sizeof(cap->bus_info),
> + "platform:%s:dec", dev_name(core->dev));

Is there a reason to keep both strscpy() and snprintf() for cap->bus_info?
The second call to snprintf() seems to overwrite the value set by
strscpy(), making the first assignment redundant. Would it be cleaner to
remove the strscpy() line and rely solely on snprintf()?

Thanks,
Dikshita
>
> return 0;
> }
> diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platform/qcom/venus/venc.c
> index b478b982a80d..520689f5533d 100644
> --- a/drivers/media/platform/qcom/venus/venc.c
> +++ b/drivers/media/platform/qcom/venus/venc.c
> @@ -144,9 +144,14 @@ static int venc_v4l2_to_hfi(int id, int value)
> static int
> venc_querycap(struct file *file, void *fh, struct v4l2_capability *cap)
> {
> + struct venus_inst *inst = to_inst(file);
> + struct venus_core *core = inst->core;
> +
> strscpy(cap->driver, "qcom-venus", sizeof(cap->driver));
> strscpy(cap->card, "Qualcomm Venus video encoder", sizeof(cap->card));
> strscpy(cap->bus_info, "platform:qcom-venus", sizeof(cap->bus_info));
> + snprintf(cap->bus_info, sizeof(cap->bus_info),
> + "platform:%s:enc", dev_name(core->dev));
>
> return 0;
> }