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

Jorge Ramirez-Ortiz posted 1 patch 1 week, 3 days ago
There is a newer version of this series
drivers/media/platform/qcom/venus/vdec.c | 5 +++++
drivers/media/platform/qcom/venus/venc.c | 5 +++++
2 files changed, 10 insertions(+)
[PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Jorge Ramirez-Ortiz 1 week, 3 days ago
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));
 
 	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;
 }
-- 
2.43.0
Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Dikshita Agarwal 6 days, 16 hours ago

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;
>  }
Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Jorge Ramirez 6 days, 11 hours ago
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.

?
Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Dikshita Agarwal 6 days, 11 hours ago

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/


Thanks,
Dikshita
> 
> ?
>
Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Jorge Ramirez 6 days, 3 hours ago
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
Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Dikshita Agarwal 5 days, 19 hours ago

On 11/26/2025 2:49 AM, Jorge Ramirez wrote:
> 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

Got it.

Thanks,
Dikshita
Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Bryan O'Donoghue 1 week, 2 days ago
On 21/11/2025 18:43, 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));
> 
>   	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;
>   }
> --
> 2.43.0
> 
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Konrad Dybcio 1 week, 3 days ago
On 11/21/25 7:43 PM, 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>
> ---

Perhaps that's a stupid question, but is there a reason they're
separate at all?

Konrad
Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Jorge Ramirez 6 days, 11 hours ago
On 21/11/25 20:22:13, Konrad Dybcio wrote:
> On 11/21/25 7:43 PM, 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>
> > ---
> 
> Perhaps that's a stupid question, but is there a reason they're
> separate at all?

not sure I understand, enc/dec support different APIs, v4l2 controls..is
that what you mean?


> 
> Konrad
>
Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Konrad Dybcio 4 days, 12 hours ago
On 11/25/25 1:55 PM, Jorge Ramirez wrote:
> On 21/11/25 20:22:13, Konrad Dybcio wrote:
>> On 11/21/25 7:43 PM, 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>
>>> ---
>>
>> Perhaps that's a stupid question, but is there a reason they're
>> separate at all?
> 
> not sure I understand, enc/dec support different APIs, v4l2 controls..is
> that what you mean?

Perhaps that shows my lack of knowledge about V4L2. I had imagined that
a single video device could implement (non-colliding) enc_xyz and dec_xyz
operations and was wondering why we need two.

Konrad
Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Jorge Ramirez 4 days, 7 hours ago
On 27/11/25 12:47:19, Konrad Dybcio wrote:
> On 11/25/25 1:55 PM, Jorge Ramirez wrote:
> > On 21/11/25 20:22:13, Konrad Dybcio wrote:
> >> On 11/21/25 7:43 PM, 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>
> >>> ---
> >>
> >> Perhaps that's a stupid question, but is there a reason they're
> >> separate at all?
> > 
> > not sure I understand, enc/dec support different APIs, v4l2 controls..is
> > that what you mean?
> 
> Perhaps that shows my lack of knowledge about V4L2. I had imagined that
> a single video device could implement (non-colliding) enc_xyz and dec_xyz
> operations and was wondering why we need two.
>

I think the main issue is that the pipelines have very different
flows/states and semantics so even if the IP block serves both, the
v4l2 abstraction needs to have them separate (plus we want concurrency).
Re: [PATCH] media: venus: assign unique bus_info strings for encoder and decoder
Posted by Konrad Dybcio 4 days, 6 hours ago
On 11/27/25 6:11 PM, Jorge Ramirez wrote:
> On 27/11/25 12:47:19, Konrad Dybcio wrote:
>> On 11/25/25 1:55 PM, Jorge Ramirez wrote:
>>> On 21/11/25 20:22:13, Konrad Dybcio wrote:
>>>> On 11/21/25 7:43 PM, 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>
>>>>> ---
>>>>
>>>> Perhaps that's a stupid question, but is there a reason they're
>>>> separate at all?
>>>
>>> not sure I understand, enc/dec support different APIs, v4l2 controls..is
>>> that what you mean?
>>
>> Perhaps that shows my lack of knowledge about V4L2. I had imagined that
>> a single video device could implement (non-colliding) enc_xyz and dec_xyz
>> operations and was wondering why we need two.
>>
> 
> I think the main issue is that the pipelines have very different
> flows/states and semantics so even if the IP block serves both, the
> v4l2 abstraction needs to have them separate (plus we want concurrency).

Ah right, that makes sense

Thanks!

Konrad