| From 240a8af929c7c57dcde28682725b29cf8474e8e5 Mon Sep 17 00:00:00 2001 |
| From: Erik Veijola <erik.veijola@gmail.com> |
| Date: Fri, 23 Feb 2018 14:06:52 +0200 |
| Subject: ALSA: usb-audio: Add a quirck for B&W PX headphones |
| |
| From: Erik Veijola <erik.veijola@gmail.com> |
| |
| commit 240a8af929c7c57dcde28682725b29cf8474e8e5 upstream. |
| |
| The capture interface doesn't work and the playback interface only |
| supports 48 kHz sampling rate even though it advertises more rates. |
| |
| Signed-off-by: Erik Veijola <erik.veijola@gmail.com> |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/usb/quirks-table.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ |
| 1 file changed, 47 insertions(+) |
| |
| --- a/sound/usb/quirks-table.h |
| +++ b/sound/usb/quirks-table.h |
| @@ -3277,4 +3277,51 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge |
| } |
| }, |
| |
| +{ |
| + /* |
| + * Bower's & Wilkins PX headphones only support the 48 kHz sample rate |
| + * even though it advertises more. The capture interface doesn't work |
| + * even on windows. |
| + */ |
| + USB_DEVICE(0x19b5, 0x0021), |
| + .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { |
| + .ifnum = QUIRK_ANY_INTERFACE, |
| + .type = QUIRK_COMPOSITE, |
| + .data = (const struct snd_usb_audio_quirk[]) { |
| + { |
| + .ifnum = 0, |
| + .type = QUIRK_AUDIO_STANDARD_MIXER, |
| + }, |
| + /* Capture */ |
| + { |
| + .ifnum = 1, |
| + .type = QUIRK_IGNORE_INTERFACE, |
| + }, |
| + /* Playback */ |
| + { |
| + .ifnum = 2, |
| + .type = QUIRK_AUDIO_FIXED_ENDPOINT, |
| + .data = &(const struct audioformat) { |
| + .formats = SNDRV_PCM_FMTBIT_S16_LE, |
| + .channels = 2, |
| + .iface = 2, |
| + .altsetting = 1, |
| + .altset_idx = 1, |
| + .attributes = UAC_EP_CS_ATTR_FILL_MAX | |
| + UAC_EP_CS_ATTR_SAMPLE_RATE, |
| + .endpoint = 0x03, |
| + .ep_attr = USB_ENDPOINT_XFER_ISOC, |
| + .rates = SNDRV_PCM_RATE_48000, |
| + .rate_min = 48000, |
| + .rate_max = 48000, |
| + .nr_rates = 1, |
| + .rate_table = (unsigned int[]) { |
| + 48000 |
| + } |
| + } |
| + }, |
| + } |
| + } |
| +}, |
| + |
| #undef USB_DEVICE_VENDOR_SPEC |