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

Jorge Ramirez
2025-11-25T21:19:19Z

On 25/11/25 18:39:14, Dikshita Agarwal wrote:
>
>
> On 11/25/2025 6:22 PM, Jorge Ramirez wrote:
> > On 25/11/25 13:59:56, Dikshita Agarwal wrote:
> >>
> >>
> >> 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()?
> >
> > argh, my bad, you are right. will fix.
> >
> > perhaps we should just have instead
> >
> > decoder:
> > strscpy(cap->bus_info,"platform:qcom-venus-dec", sizeof(cap->bus_info));
> >
> > encoder:
> > strscpy(cap->bus_info, "platform:qcom-venus-enc",sizeof(cap->bus_info)); on the encoder
> >
> > I suppose the additional info provided by the dev_name is not really
> > important to consumers.
>
> In-fact, we don't even need to fill the bus_info, received a similar
> comment on iris [1]
> [1]:
> https://lore.kernel.org/linux-media/c4350128-a05c-47af-a7e7-2810171cd311@xs4all.nl/

Nope, that is wrong.

if we dont fill bus_info we will end up with the following again:

root@qrb2210-rb1-core-kit:~# v4l2-ctl --list-devices
Qualcomm Venus video encoder (platform:5a00000.video-codec):
/dev/video0
/dev/video1

instead of something like this:

root@qrb2210-rb1-core-kit:~# v4l2-ctl --list-devices
Qualcomm Venus video decoder (platform:qcom-venus_dec):
/dev/video1

Qualcomm Venus video encoder (platform:qcom-venus_enc):
/dev/video0