Hi Bingbu, On Wed, Feb 12, 2025 at 05:20:54PM +0800, Bingbu Cao wrote: > > On 2/12/25 5:14 PM, Bingbu Cao wrote: > > > > > > On 2/12/25 4:25 PM, Sakari Ailus wrote: > >> Hi Bingbu, > >> > >> Thanks for the patch. > >> > >> On Wed, Feb 12, 2025 at 03:53:14PM +0800, bingbu.cao@xxxxxxxxx wrote: > >>> From: Bingbu Cao <bingbu.cao@xxxxxxxxx> > >>> > >>> IPU6 isys driver missed setting the bus_info of its v4l2_capability. > >>> `v4l2-ctl --all` cannot show the bus_info. This patch copy the bus_info > >>> from the media device to fill the v4l2_capability. > >>> > >>> Fixes: 3c1dfb5a69cf ("media: intel/ipu6: input system video nodes and buffer queues") > >>> Signed-off-by: Hidenori Kobayashi <hidenorik@xxxxxxxxxxxx> > >>> Signed-off-by: Bingbu Cao <bingbu.cao@xxxxxxxxx> > >>> --- > >>> drivers/media/pci/intel/ipu6/ipu6-isys-video.c | 2 ++ > >>> 1 file changed, 2 insertions(+) > >>> > >>> diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c > >>> index 387963529adb..3ca3f44da387 100644 > >>> --- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c > >>> +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c > >>> @@ -146,6 +146,8 @@ static int ipu6_isys_vidioc_querycap(struct file *file, void *fh, > >>> > >>> strscpy(cap->driver, IPU6_ISYS_NAME, sizeof(cap->driver)); > >>> strscpy(cap->card, av->isys->media_dev.model, sizeof(cap->card)); > >>> + strscpy(cap->bus_info, av->isys->media_dev.bus_info, > >>> + sizeof(cap->bus_info)); > >> > >> Is there a need to do this? The bus_info is set by the framework based on > >> struct video_device dev_parent field and that comes from struct v4l2_device > >> dev field. > >> > > > > The v4l2_device.dev filed is set to the dev_parent which is auxdev.dev > > instead of pdev. So the bus_info was not set by framework. > > > > I remember we made a change in isys_register_devices() : > > - ret = v4l2_device_register(dev->parent, &isys->v4l2_dev); > + ret = v4l2_device_register(dev, &isys->v4l2_dev); Right. I vaguely recall there were changes in device assignments over the course of upstreaming, due to the sub-device driver module refcounting. So I think this needs to stay as-is. Instead, would assigning the dev_parent field in struct video_device achieve this or would there be side effects? The other alternative is to use media_set_bus_info(). -- Regards, Sakari Ailus