android_kernel_samsung_msm8976/sound/usb
Clemens Ladisch 88ab732087 ALSA: usb-audio: prevent CH345 multiport output SysEx corruption
commit 1ca8b201309d842642f221db7f02f71c0af5be2d upstream.

The CH345 USB MIDI chip has two output ports.  However, they are
multiplexed through one pin, and the number of ports cannot be reduced
even for hardware that implements only one connector, so for those
devices, data sent to either port ends up on the same hardware output.
This becomes a problem when both ports are used at the same time, as
longer MIDI commands (such as SysEx messages) are likely to be
interrupted by messages from the other port, and thus to get lost.

It would not be possible for the driver to detect how many ports the
device actually has, except that in practice, _all_ devices built with
the CH345 have only one port.  So we can just ignore the device's
descriptors, and hardcode one output port.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-12-09 13:40:10 -05:00
..
6fire ALSA: 6fire: Fix probe of multiple cards 2013-11-29 11:11:44 -08:00
caiaq ALSA: usb-audio: caiaq: fix endianness bug in snd_usb_caiaq_maschine_dispatch 2013-04-30 09:19:02 +02:00
misc ALSA: ua101: Fix unlocked snd_pcm_stop() call 2013-07-25 14:07:25 -07:00
usx2y ALSA: us122l: Fix pcm_usb_stream mmapping regression 2013-11-04 04:31:06 -08:00
card.c ALSA: usb-audio: work around Android accessory firmware bug 2013-06-17 09:56:52 +02:00
card.h ALSA: usb-audio: work around corrupted TEAC UD-H01 feedback data 2014-06-07 13:25:33 -07:00
clock.c ALSA: usb - Avoid unnecessary sample rate changes on USB 2.0 clock sources 2013-04-26 07:37:09 +02:00
clock.h ALSA: usb-audio: UAC2: do clock validity check earlier 2013-04-04 08:30:59 +02:00
debug.h ALSA: usb-audio: make hwc_debug a noop in case HW_CONST_DEBUG is not set 2011-05-18 11:44:35 +02:00
endpoint.c ALSA: usb-audio: work around corrupted TEAC UD-H01 feedback data 2014-06-07 13:25:33 -07:00
endpoint.h ALSA: usb-audio: spelling correction 2013-04-04 08:30:30 +02:00
format.c ALSA: pcm_format_to_bits strong-typed conversion 2013-04-29 13:36:15 +02:00
format.h ALSA: snd-usb: handle the bmFormats field as unsigned int 2013-03-18 08:47:04 +01:00
helper.c ALSA: snd-usb-audio: set the timeout for usb control set messages to 5000 ms 2013-04-22 10:45:02 +02:00
helper.h ALSA: usb-audio: increase control transfer timeout 2011-09-27 09:21:48 +02:00
Kconfig ALSA: usb-audio: Add missing kconfig dependecy 2014-02-20 11:06:11 -08:00
Makefile ALSA: snd-usb: move code from urb.c to endpoint.c 2011-09-14 17:07:03 +02:00
midi.c ALSA: usb-audio: prevent CH345 multiport output SysEx corruption 2015-12-09 13:40:10 -05:00
midi.h
mixer.c ALSA: usb-audio: Add mic volume fix quirk for Logitech Quickcam Fusion 2015-06-22 16:55:52 -07:00
mixer.h ALSA: usb-audio: add control index offset 2012-11-29 08:43:12 +01:00
mixer_maps.c ALSA: usb-audio: add dB range mapping for some devices 2015-08-10 12:20:30 -07:00
mixer_quirks.c ALSA: usb - Creative USB X-Fi Pro SB1095 volume knob support 2015-04-19 10:10:46 +02:00
mixer_quirks.h
pcm.c ALSA: usb-audio: Prevent printk ratelimiting from spamming kernel log while DEBUG not defined 2014-07-09 11:14:02 -07:00
pcm.h ALSA: usb: refine delay information with USB frame counter 2011-09-12 10:30:20 +02:00
power.h
proc.c ALSA: usb-audio: proc: use found syncmaxsize to determine feedback format 2013-05-17 08:05:34 +02:00
proc.h
quirks-table.h ALSA: usb-audio: prevent CH345 multiport output SysEx corruption 2015-12-09 13:40:10 -05:00
quirks.c ALSA: usb-audio: prevent CH345 multiport output SysEx corruption 2015-12-09 13:40:10 -05:00
quirks.h ALSA: snd-usb: add quirks handler for DSD streams 2013-04-18 10:03:53 +02:00
stream.c ALSA: snd-usb: try harder to find USB_DT_CS_ENDPOINT 2013-04-25 07:33:20 +02:00
stream.h ALSA: snd-usb: re-order code 2011-09-14 17:07:02 +02:00
usbaudio.h ALSA: usb-audio: prevent CH345 multiport output SysEx corruption 2015-12-09 13:40:10 -05:00