public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* v4l parent for usb device interface or device?
@ 2009-03-25 10:18 Hans de Goede
  2009-03-25 14:51 ` Laurent Pinchart
  0 siblings, 1 reply; 8+ messages in thread
From: Hans de Goede @ 2009-03-25 10:18 UTC (permalink / raw)
  To: linux-media; +Cc: Ricardo Jorge da Fonseca Marques Ferreira

<take 2 this time to the new list, hoping it gets some more attention>

Hi,

Today it came to my attention (through a libv4l bugreport) that
the uvc driver and the gspca driver handle the setting of
the v4l parent for usb webcams differently.

The probe function for an usb driver gets passed in a
"struct usb_interface *intf" parameter.

uvc sets parent to:

vdev->parent = &intf->dev;

gspca uses:
struct usb_device *dev = interface_to_usbdev(intf);
vdev.parent = &dev->dev;

Looking at what for example the usb mass-storage driver
does (with my multi function printer/scanner with cardreader),
which matches UVC, and thinking about how this is supposed to
work with multifunction devices in general, I believe the uvc
driver behaviour is correct, but before writing a patch for
gspca, I thought it would be good to first discuss this on the
list.

So what do you think ?

Thanks & Regards,

Hans


p.s.

This mainly influences what the /sys/class/video4linux/video#/device
symlink will point to, which libv4l uses.

^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: v4l parent for usb device interface or device?
@ 2009-03-25 14:58 Hans Verkuil
  2009-03-26 12:29 ` Hans de Goede
  0 siblings, 1 reply; 8+ messages in thread
From: Hans Verkuil @ 2009-03-25 14:58 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Hans de Goede, linux-media,
	Ricardo Jorge da Fonseca Marques Ferreira


> Hi Hans,
>
> On Wednesday 25 March 2009 11:18:31 Hans de Goede wrote:
>> <take 2 this time to the new list, hoping it gets some more attention>
>>
>> Hi,
>>
>> Today it came to my attention (through a libv4l bugreport) that
>> the uvc driver and the gspca driver handle the setting of
>> the v4l parent for usb webcams differently.
>>
>> The probe function for an usb driver gets passed in a
>> "struct usb_interface *intf" parameter.
>>
>> uvc sets parent to:
>>
>> vdev->parent = &intf->dev;
>>
>> gspca uses:
>> struct usb_device *dev = interface_to_usbdev(intf);
>> vdev.parent = &dev->dev;
>>
>> Looking at what for example the usb mass-storage driver
>> does (with my multi function printer/scanner with cardreader),
>> which matches UVC, and thinking about how this is supposed to
>> work with multifunction devices in general, I believe the uvc
>> driver behaviour is correct, but before writing a patch for
>> gspca, I thought it would be good to first discuss this on the
>> list.
>>
>> So what do you think ?
>
> I obviously agree with you :-)
>
> USB class drivers bind to interfaces instead of devices to support
> composite
> (multifunction) devices. While drivers for vendor-specific USB devices can
> bind to the device, in which case the parent could be a USB device, we
> need to
> have some consistency in the sysfs symlinks. Using a USB interface as the
> video device parent regardless of the device type makes sense.

If the parent should indeed become the usb_interface, then we should make
all v4l usb drivers consistent. And update v4l2-framework.txt. I've
noticed before that it seems to be random what is used as the parent. I'm
no USB expert, so I'm relying on your input.

Regards,

       Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-03-27 20:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-25 10:18 v4l parent for usb device interface or device? Hans de Goede
2009-03-25 14:51 ` Laurent Pinchart
  -- strict thread matches above, loose matches on Subject: below --
2009-03-25 14:58 Hans Verkuil
2009-03-26 12:29 ` Hans de Goede
2009-03-26 18:14   ` Theodore Kilgore
2009-03-27  0:51   ` Janne Grunau
2009-03-27  1:31     ` David Brownell
2009-03-27 20:59       ` Janne Grunau

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox