Daniel Mack wrote:
On 11/29/2011 05:58 PM, Linus Torvalds wrote:
On Tue, Nov 29, 2011 at 4:52 AM, Nixbits Admin admin@nixbits.org wrote:
Nov 29 07:21:21 kernel: skipping empty audio interface (v1) Nov 29 07:21:21 kernel: snd-usb-audio: probe of 2-3:1.0 failed with error -5
If the driver bails out at this point, there's something wrong with the descriptors, or the interface has no audio support at all (which would be odd as it could have been omitted entirely in the first place).
We might have to add a quirk for the device, let's see.
Actually, this error message could be prevented by removing the quirk that is already there.
That quirk does nothing more than providing a nice user-visible name for the device. In doing so, it uses the USB_DEVICE macro, which makes the USB core trying to attach it to all interfaces, including the video ones. Because of all the crap descriptors out there, the audio driver trusts the quirk, is not fazed by an interface not labeled as "audio", and happily begins to parse the interface's descriptors.
The quirk should just be restricted to the audio interfaces (like all the other Logitech quirks).
N.A., please try the patch below.
Regards, Clemens
--- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h @@ -157,7 +157,13 @@ .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL }, { - USB_DEVICE(0x046d, 0x0990), + .match_flags = USB_DEVICE_ID_MATCH_DEVICE | + USB_DEVICE_ID_MATCH_INT_CLASS | + USB_DEVICE_ID_MATCH_INT_SUBCLASS, + .idVendor = 0x046d, + .idProduct = 0x0990, + .bInterfaceClass = USB_CLASS_AUDIO, + .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Logitech, Inc.", .product_name = "QuickCam Pro 9000",