ALSA: usb-audio: Fix TEAC UD-501/UD-503/NT-503 usb delay
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> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
462b3f161b
commit
5a4ff9ec8d
1 changed files with 13 additions and 1 deletions
|
@ -1205,8 +1205,12 @@ void snd_usb_set_interface_quirk(struct usb_device *dev)
|
||||||
* "Playback Design" products need a 50ms delay after setting the
|
* "Playback Design" products need a 50ms delay after setting the
|
||||||
* USB interface.
|
* 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);
|
mdelay(50);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,
|
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)
|
(requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
|
||||||
mdelay(20);
|
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
|
/* Marantz/Denon devices with USB DAC functionality need a delay
|
||||||
* after each class compliant request
|
* after each class compliant request
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue