[alsa-devel] [PATCH] snd-usb-audio: explicitly match Logitech QuickCam
Commit 93c8bf45e083b89dffe3a708363c15c1b220c723 modified the USB device matching behaviour to ignore interface class matches if the device class is vendor-specific.
This patch adds an explicit ID match for the Logitech QuickCam Messenger, which has a vendor specific device class (but standards-compliant audio interfaces).
This fixes a 2.6.20 regression where the audio component of this device was no longer usable.
http://bugs.gentoo.org/show_bug.cgi?id=175715 https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/93822 https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3040
Based on a patch from sergiom
Signed-off-by: Daniel Drake dsd@gentoo.org
Index: linux/sound/usb/usbquirks.h =================================================================== --- linux.orig/sound/usb/usbquirks.h +++ linux/sound/usb/usbquirks.h @@ -40,6 +40,21 @@ .bInterfaceClass = USB_CLASS_VENDOR_SPEC
/* + * Logitech QuickCam: bDeviceClass is vendor-specific, so generic interface + * class matches do not take effect without an explicit ID match. + */ + +{ + .match_flags = USB_DEVICE_ID_MATCH_DEVICE | + USB_DEVICE_ID_MATCH_INT_CLASS | + USB_DEVICE_ID_MATCH_INT_SUBCLASS, + .idVendor = 0x046d, + .idProduct = 0x08f0, + .bInterfaceClass = USB_CLASS_AUDIO, + .bInterfaceSubClass = USB_SUBCLASS_AUDIO_CONTROL +}, + +/* * Yamaha devices */
On Mon, 30 Apr 2007, Daniel Drake wrote:
Commit 93c8bf45e083b89dffe3a708363c15c1b220c723 modified the USB device matching behaviour to ignore interface class matches if the device class is vendor-specific.
This patch adds an explicit ID match for the Logitech QuickCam Messenger, which has a vendor specific device class (but standards-compliant audio interfaces).
This fixes a 2.6.20 regression where the audio component of this device was no longer usable.
http://bugs.gentoo.org/show_bug.cgi?id=175715 https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/93822 https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3040
Based on a patch from sergiom
Signed-off-by: Daniel Drake dsd@gentoo.org
Index: linux/sound/usb/usbquirks.h
--- linux.orig/sound/usb/usbquirks.h +++ linux/sound/usb/usbquirks.h @@ -40,6 +40,21 @@ .bInterfaceClass = USB_CLASS_VENDOR_SPEC
/*
- Logitech QuickCam: bDeviceClass is vendor-specific, so generic interface
- class matches do not take effect without an explicit ID match.
- */
+{
- .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
USB_DEVICE_ID_MATCH_INT_CLASS |
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
- .idVendor = 0x046d,
- .idProduct = 0x08f0,
- .bInterfaceClass = USB_CLASS_AUDIO,
- .bInterfaceSubClass = USB_SUBCLASS_AUDIO_CONTROL
+},
+/*
- Yamaha devices
*/
This ought to fix the problem.
You might want to consider adding a macro to include/linux/usb.h to handle cases like this. Something like USB_DEVICE_AND_INTERFACE_INFO() -- it would make life easier for other people in the future when faced with the same problem.
Alan Stern
At Mon, 30 Apr 2007 04:13:00 +0100 (BST), Daniel Drake wrote:
Commit 93c8bf45e083b89dffe3a708363c15c1b220c723 modified the USB device matching behaviour to ignore interface class matches if the device class is vendor-specific.
This patch adds an explicit ID match for the Logitech QuickCam Messenger, which has a vendor specific device class (but standards-compliant audio interfaces).
This fixes a 2.6.20 regression where the audio component of this device was no longer usable.
http://bugs.gentoo.org/show_bug.cgi?id=175715 https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/93822 https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3040
Based on a patch from sergiom
Signed-off-by: Daniel Drake dsd@gentoo.org
Thanks, I now applied it to ALSA tree.
Takashi
Index: linux/sound/usb/usbquirks.h
--- linux.orig/sound/usb/usbquirks.h +++ linux/sound/usb/usbquirks.h @@ -40,6 +40,21 @@ .bInterfaceClass = USB_CLASS_VENDOR_SPEC
/*
- Logitech QuickCam: bDeviceClass is vendor-specific, so generic interface
- class matches do not take effect without an explicit ID match.
- */
+{
- .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
USB_DEVICE_ID_MATCH_INT_CLASS |
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
- .idVendor = 0x046d,
- .idProduct = 0x08f0,
- .bInterfaceClass = USB_CLASS_AUDIO,
- .bInterfaceSubClass = USB_SUBCLASS_AUDIO_CONTROL
+},
+/*
- Yamaha devices
*/
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
participants (3)
-
Alan Stern
-
Daniel Drake
-
Takashi Iwai