]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ALSA: snd-usb: Add quirks for Playback Designs devices
authorDaniel Mack <zonque@gmail.com>
Tue, 4 Sep 2012 08:23:07 +0000 (10:23 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 12 Oct 2012 20:50:27 +0000 (05:50 +0900)
commit90180feb0afe4be06678d9cd965dd730bd773a7e
treebd01b435cb8357dc80871fae942a561320ce9675
parent3ebd9559e210f49fe89c6b81177bf05b5ab645e8
ALSA: snd-usb: Add quirks for Playback Designs devices

commit 2b58fd5b3193fd3af3d15114d95706087d25a7fe upstream.

Playback Designs' USB devices have some hardware limitations on their
USB interface. In particular:

 - They need a 20ms delay after each class compliant request as the
   hardware ACKs the USB packets before the device is actually ready
   for the next command. Sending data immediately will result in buffer
   overflows in the hardware.
 - The devices send bogus feedback data at the start of each stream
   which confuse the feedback format auto-detection.

This patch introduces a new quirks hook that is called after each
control packet and which adds a delay for all devices that match
Playback Designs' USB VID for now.

In addition, it adds a counter to snd_usb_endpoint to drop received
packets on the floor. Another new quirks function that is called once
an endpoint is started initializes that counter for these devices on
their sync endpoint.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Reported-and-tested-by: Andreas Koch <andreas@akdesigninc.com>
Supported-by: Demian Martin <demianm_1@yahoo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/usb/card.h
sound/usb/endpoint.c
sound/usb/helper.c
sound/usb/quirks.c
sound/usb/quirks.h