diff options
author | Daniel Mack <zonque@gmail.com> | 2013-04-10 00:56:03 +0800 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-04-10 09:21:43 +0200 |
commit | 21bb5aafce4350e243f9be3d981c0beb2e2c5ab4 (patch) | |
tree | 41dfd36deccedeff13266cb71b0b79b69c830130 /sound/usb/quirks.c | |
parent | 78daea29f2e5312bce9d7781a5400026b71ed29b (diff) | |
download | op-kernel-dev-21bb5aafce4350e243f9be3d981c0beb2e2c5ab4.zip op-kernel-dev-21bb5aafce4350e243f9be3d981c0beb2e2c5ab4.tar.gz |
ALSA: snd-usb: Playback Design: use usb_set_inferface quirk from more locations
It turns out the devices from Playback Design need the delay quirk
after usb_set_interface from clocks.c as well. Make it a proper
quirks function and factor out the code to quirks.c.
Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/quirks.c')
-rw-r--r-- | sound/usb/quirks.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index a2ac004..2927981 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@ -892,6 +892,16 @@ void snd_usb_endpoint_start_quirk(struct snd_usb_endpoint *ep) ep->skip_packets = 16; } +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) + mdelay(50); +} + void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe, __u8 request, __u8 requesttype, __u16 value, __u16 index, void *data, __u16 size) |