ALSA: usb-audio: Fix TEAC UD-501/UD-503/NT-503 usb delay
commit 5a4ff9ec8d6edd2ab1cfe8ce6a080d6e57cbea9a upstream. TEAC UD-501/UD-503/NT-503 fail to switch properly between different rate/format. Similar to 'Playback Design', this patch corrects the invalid clock source error for TEAC products and avoids complete freeze of the usb interface of 503 series. Signed-off-by: Guillaume Fougnies <guillaume@eulerian.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
dd0d511548
commit
1eb90d90ea
@ -1205,8 +1205,12 @@ void snd_usb_set_interface_quirk(struct usb_device *dev)
|
||||
* "Playback Design" products need a 50ms delay after setting the
|
||||
* USB interface.
|
||||
*/
|
||||
if (le16_to_cpu(dev->descriptor.idVendor) == 0x23ba)
|
||||
switch (le16_to_cpu(dev->descriptor.idVendor)) {
|
||||
case 0x23ba: /* Playback Design */
|
||||
case 0x0644: /* TEAC Corp. */
|
||||
mdelay(50);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,
|
||||
@ -1221,6 +1225,14 @@ void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,
|
||||
(requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
|
||||
mdelay(20);
|
||||
|
||||
/*
|
||||
* "TEAC Corp." products need a 20ms delay after each
|
||||
* class compliant request
|
||||
*/
|
||||
if ((le16_to_cpu(dev->descriptor.idVendor) == 0x0644) &&
|
||||
(requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
|
||||
mdelay(20);
|
||||
|
||||
/* Marantz/Denon devices with USB DAC functionality need a delay
|
||||
* after each class compliant request
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user