1
0
Fork 0
alistair23-linux/sound/usb
Hector Martin 10de419977 ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109
commit 1b7ecc241a upstream.

Further investigation of the L-R swap problem on the MS2109 reveals that
the problem isn't that the channels are swapped, but rather that they
are swapped and also out of phase by one sample. In other words, the
issue is actually that the very first frame that comes from the hardware
is a half-frame containing only the right channel, and after that
everything becomes offset.

So introduce a new quirk field to drop the very first 2 bytes that come
in after the format is configured and a capture stream starts. This puts
the channels in phase and in the correct order.

Cc: stable@vger.kernel.org
Signed-off-by: Hector Martin <marcan@marcan.st>
Link: https://lore.kernel.org/r/20200810082400.225858-1-marcan@marcan.st
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-08-19 08:16:24 +02:00
..
6fire treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
bcd2000 Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
caiaq treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
hiface ALSA: hiface: fix multiple memory leak bugs 2019-08-07 12:20:00 +02:00
line6 ALSA: line6: Sync the pending work cancel at disconnection 2020-07-22 09:33:08 +02:00
misc treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 264 2019-06-05 17:30:28 +02:00
usx2y ALSA: usx2y: Fix potential NULL dereference 2020-04-29 16:33:15 +02:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile Merge branch 'topic/usb-validation' into for-next 2019-08-22 15:42:03 +02:00
card.c ALSA: usb-audio: Rewrite registration quirk handling 2020-07-22 09:32:59 +02:00
card.h ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109 2020-08-19 08:16:24 +02:00
clock.c ALSA: usb-audio: Add support for MOTU MicroBook IIc 2020-07-22 09:32:58 +02:00
clock.h ALSA: usb-audio: Add clock validity quirk for Denon MC7000/MCX8000 2020-02-19 19:52:57 +01:00
debug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
endpoint.c Revert "ALSA: usb-audio: Improve frames size computation" 2020-07-09 09:37:55 +02:00
endpoint.h Revert "ALSA: usb-audio: Improve frames size computation" 2020-07-09 09:37:55 +02:00
format.c ALSA: usb-audio: Filter out unsupported sample rates on Focusrite devices 2020-04-29 16:33:16 +02:00
format.h ALSA: usb: initial USB Audio Device Class 3.0 support 2018-03-21 11:46:33 +01:00
helper.c ALSA: usb-audio: Fix gpf in snd_usb_pipe_sanity_check 2019-07-30 12:32:21 +02:00
helper.h ALSA: usb-audio: More validations of descriptor units 2019-08-22 10:35:59 +02:00
media.c media: sound/usb: Use Media Controller API to share media resources 2019-04-22 11:21:06 -04:00
media.h media: sound/usb: Use Media Controller API to share media resources 2019-04-22 11:21:06 -04:00
midi.c ALSA: usb-audio: Fix race against the error recovery URB submission 2020-07-22 09:33:09 +02:00
midi.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mixer.c ALSA: usb-audio: Fix OOB access of mixer element list 2020-06-30 15:36:50 -04:00
mixer.h ALSA: usb-audio: Fix OOB access of mixer element list 2020-06-30 15:36:50 -04:00
mixer_maps.c ALSA: usb-audio: Quirks for Gigabyte TRX40 Aorus Master onboard audio 2020-06-03 08:21:24 +02:00
mixer_quirks.c ALSA: usb-audio: Creative USB X-Fi Pro SB1095 volume knob support 2020-08-19 08:16:24 +02:00
mixer_quirks.h ALSA: usb-audio: Initialize Dell Dock playback volumes 2018-05-02 16:02:32 +02:00
mixer_scarlett.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mixer_scarlett.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mixer_scarlett_gen2.c ALSA: usb-audio: Annotate endianess in Scarlett gen2 quirk 2020-02-11 04:35:11 -08:00
mixer_scarlett_gen2.h ALSA: usb-audio: Scarlett Gen 2 mixer interface 2019-07-28 17:47:48 +02:00
mixer_us16x08.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mixer_us16x08.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pcm.c ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109 2020-08-19 08:16:24 +02:00
pcm.h ALSA: usb-audio: Add UAC3 Power Domains to suspend/resume 2018-07-31 15:01:36 +02:00
power.c ALSA: usb-audio: More validations of descriptor units 2019-08-22 10:35:59 +02:00
power.h ALSA: usb-audio: Initial Power Domain support 2018-07-31 15:01:22 +02:00
proc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
proc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
quirks-table.h ALSA: usb-audio: fix overeager device match for MacroSilicon MS2109 2020-08-19 08:16:24 +02:00
quirks.c ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109 2020-08-19 08:16:24 +02:00
quirks.h ALSA: usb-audio: Rewrite registration quirk handling 2020-07-22 09:32:59 +02:00
stream.c ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109 2020-08-19 08:16:24 +02:00
stream.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
usbaudio.h ALSA: usb-audio: Fix inconsistent card PM state after resume 2020-06-17 16:40:27 +02:00
validate.c ALSA: usb-audio: Fix endianess in descriptor validation 2020-02-11 04:35:10 -08:00