ALSA: usb - Correct audio problem for Hauppage HVR-850 and others rel. to urb data align
Match usb ids in usb/quirks-table.h for some Hauppage HVR-950Q models and for the HVR850 model to those ids at the end of au0828-cards.c Thanks to nhJm449 for pointing out the problem. Signed-off-by: John S Gruber <JohnSGruber@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
9c29490246
commit
dd2f8c2f81
1 changed files with 99 additions and 85 deletions
|
@ -2152,91 +2152,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
USB_DEVICE_VENDOR_SPEC(0x2040, 0x7201),
|
USB_DEVICE_VENDOR_SPEC(0x2040, 0x7240),
|
||||||
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_CLASS |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
|
||||||
.bInterfaceClass = USB_CLASS_AUDIO,
|
|
||||||
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
|
||||||
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
|
||||||
.vendor_name = "Hauppauge",
|
|
||||||
.product_name = "HVR-950Q",
|
|
||||||
.ifnum = QUIRK_ANY_INTERFACE,
|
|
||||||
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
USB_DEVICE_VENDOR_SPEC(0x2040, 0x7202),
|
|
||||||
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_CLASS |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
|
||||||
.bInterfaceClass = USB_CLASS_AUDIO,
|
|
||||||
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
|
||||||
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
|
||||||
.vendor_name = "Hauppauge",
|
|
||||||
.product_name = "HVR-950Q",
|
|
||||||
.ifnum = QUIRK_ANY_INTERFACE,
|
|
||||||
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
USB_DEVICE_VENDOR_SPEC(0x2040, 0x7203),
|
|
||||||
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_CLASS |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
|
||||||
.bInterfaceClass = USB_CLASS_AUDIO,
|
|
||||||
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
|
||||||
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
|
||||||
.vendor_name = "Hauppauge",
|
|
||||||
.product_name = "HVR-950Q",
|
|
||||||
.ifnum = QUIRK_ANY_INTERFACE,
|
|
||||||
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
USB_DEVICE_VENDOR_SPEC(0x2040, 0x7204),
|
|
||||||
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_CLASS |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
|
||||||
.bInterfaceClass = USB_CLASS_AUDIO,
|
|
||||||
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
|
||||||
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
|
||||||
.vendor_name = "Hauppauge",
|
|
||||||
.product_name = "HVR-950Q",
|
|
||||||
.ifnum = QUIRK_ANY_INTERFACE,
|
|
||||||
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
USB_DEVICE_VENDOR_SPEC(0x2040, 0x7205),
|
|
||||||
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_CLASS |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
|
||||||
.bInterfaceClass = USB_CLASS_AUDIO,
|
|
||||||
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
|
||||||
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
|
||||||
.vendor_name = "Hauppauge",
|
|
||||||
.product_name = "HVR-950Q",
|
|
||||||
.ifnum = QUIRK_ANY_INTERFACE,
|
|
||||||
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
USB_DEVICE_VENDOR_SPEC(0x2040, 0x7250),
|
|
||||||
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_CLASS |
|
|
||||||
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
|
||||||
.bInterfaceClass = USB_CLASS_AUDIO,
|
|
||||||
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
|
||||||
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
|
||||||
.vendor_name = "Hauppauge",
|
|
||||||
.product_name = "HVR-950Q",
|
|
||||||
.ifnum = QUIRK_ANY_INTERFACE,
|
|
||||||
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
USB_DEVICE_VENDOR_SPEC(0x2040, 0x7230),
|
|
||||||
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
||||||
USB_DEVICE_ID_MATCH_INT_CLASS |
|
USB_DEVICE_ID_MATCH_INT_CLASS |
|
||||||
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
||||||
|
@ -2249,6 +2165,104 @@ YAMAHA_DEVICE(0x7010, "UB99"),
|
||||||
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
USB_DEVICE_VENDOR_SPEC(0x2040, 0x7210),
|
||||||
|
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_CLASS |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
||||||
|
.bInterfaceClass = USB_CLASS_AUDIO,
|
||||||
|
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
||||||
|
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
||||||
|
.vendor_name = "Hauppauge",
|
||||||
|
.product_name = "HVR-950Q",
|
||||||
|
.ifnum = QUIRK_ANY_INTERFACE,
|
||||||
|
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
USB_DEVICE_VENDOR_SPEC(0x2040, 0x7217),
|
||||||
|
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_CLASS |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
||||||
|
.bInterfaceClass = USB_CLASS_AUDIO,
|
||||||
|
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
||||||
|
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
||||||
|
.vendor_name = "Hauppauge",
|
||||||
|
.product_name = "HVR-950Q",
|
||||||
|
.ifnum = QUIRK_ANY_INTERFACE,
|
||||||
|
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
USB_DEVICE_VENDOR_SPEC(0x2040, 0x721b),
|
||||||
|
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_CLASS |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
||||||
|
.bInterfaceClass = USB_CLASS_AUDIO,
|
||||||
|
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
||||||
|
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
||||||
|
.vendor_name = "Hauppauge",
|
||||||
|
.product_name = "HVR-950Q",
|
||||||
|
.ifnum = QUIRK_ANY_INTERFACE,
|
||||||
|
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
USB_DEVICE_VENDOR_SPEC(0x2040, 0x721e),
|
||||||
|
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_CLASS |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
||||||
|
.bInterfaceClass = USB_CLASS_AUDIO,
|
||||||
|
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
||||||
|
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
||||||
|
.vendor_name = "Hauppauge",
|
||||||
|
.product_name = "HVR-950Q",
|
||||||
|
.ifnum = QUIRK_ANY_INTERFACE,
|
||||||
|
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
USB_DEVICE_VENDOR_SPEC(0x2040, 0x721f),
|
||||||
|
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_CLASS |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
||||||
|
.bInterfaceClass = USB_CLASS_AUDIO,
|
||||||
|
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
||||||
|
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
||||||
|
.vendor_name = "Hauppauge",
|
||||||
|
.product_name = "HVR-950Q",
|
||||||
|
.ifnum = QUIRK_ANY_INTERFACE,
|
||||||
|
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
USB_DEVICE_VENDOR_SPEC(0x2040, 0x7280),
|
||||||
|
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_CLASS |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
||||||
|
.bInterfaceClass = USB_CLASS_AUDIO,
|
||||||
|
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
||||||
|
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
||||||
|
.vendor_name = "Hauppauge",
|
||||||
|
.product_name = "HVR-950Q",
|
||||||
|
.ifnum = QUIRK_ANY_INTERFACE,
|
||||||
|
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
USB_DEVICE_VENDOR_SPEC(0x0fd9, 0x0008),
|
||||||
|
.match_flags = USB_DEVICE_ID_MATCH_DEVICE |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_CLASS |
|
||||||
|
USB_DEVICE_ID_MATCH_INT_SUBCLASS,
|
||||||
|
.bInterfaceClass = USB_CLASS_AUDIO,
|
||||||
|
.bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
|
||||||
|
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
||||||
|
.vendor_name = "Hauppauge",
|
||||||
|
.product_name = "HVR-950Q",
|
||||||
|
.ifnum = QUIRK_ANY_INTERFACE,
|
||||||
|
.type = QUIRK_AUDIO_ALIGN_TRANSFER,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
/* Digidesign Mbox */
|
/* Digidesign Mbox */
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue