summaryrefslogtreecommitdiffstats
path: root/sound/usb
diff options
context:
space:
mode:
authorDaniel Mack <zonque@gmail.com>2013-03-17 20:07:26 +0800
committerTakashi Iwai <tiwai@suse.de>2013-03-18 08:47:21 +0100
commit0959f22ee66734c212fc733f7616ba321ef7f47f (patch)
tree1bb9cdde03db0ff1043511d4e633174030afed22 /sound/usb
parent717bfb5f46f0ee809f6ce04ebdf44521730fff05 (diff)
downloadlinux-0959f22ee66734c212fc733f7616ba321ef7f47f.tar.gz
linux-0959f22ee66734c212fc733f7616ba321ef7f47f.tar.bz2
linux-0959f22ee66734c212fc733f7616ba321ef7f47f.zip
ALSA: snd-usb: add delay quirk for "Playback Design" products
"Playback Design" products need a 50ms delay after setting the USB interface. Signed-off-by: Daniel Mack <zonque@gmail.com> Reported-by: Andreas Koch <andreas@akdesigninc.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/pcm.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index f94397b42aa5..c263991b3b9d 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -350,6 +350,13 @@ static int set_format(struct snd_usb_substream *subs, struct audioformat *fmt)
fmt->iface, fmt->altsetting);
subs->interface = fmt->iface;
subs->altset_idx = fmt->altset_idx;
+
+ /*
+ * "Playback Design" products need a 50ms delay after setting the
+ * USB interface.
+ */
+ if (le16_to_cpu(dev->descriptor.idVendor) == 0x23ba)
+ mdelay(50);
}
subs->data_endpoint = snd_usb_add_endpoint(subs->stream->chip,