1
0
Fork 0
alistair23-linux/sound/usb
Clemens Ladisch 1ca8b20130 ALSA: usb-audio: prevent CH345 multiport output SysEx corruption
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>
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2015-11-16 08:59:24 +01:00
..
6fire ALSA: 6fire: Convert byte_rev_table uses to bitrev8 2014-11-14 08:01:53 +01:00
bcd2000 ALSA: bcd2000: Make local data static 2015-05-26 13:00:01 +02:00
caiaq ALSA: snd-usb-caiaq: fix stream count check 2015-01-05 08:56:19 +01:00
hiface ALSA: usb: Convert to snd_card_new() with a device pointer 2014-02-12 11:18:00 +01:00
line6 ALSA: line6: Fix -EBUSY error during active monitoring 2015-07-14 15:19:37 +02:00
misc ALSA: pcm: Add snd_pcm_stop_xrun() helper 2014-11-09 18:20:40 +01:00
usx2y ALSA: usx2y: Move UAPI definition into include/uapi/sound/usb_stream.h 2015-01-28 17:33:49 +01:00
Kconfig ALSA: move line6 usb driver into sound/usb 2015-01-12 22:29:57 +01:00
Makefile ALSA: line6: Split to each driver 2015-01-20 08:14:17 +01:00
card.c ALSA: usb-audio: Handle normal and auto-suspend equally 2015-08-26 16:12:25 +02:00
card.h ALSA: USB-audio: Add quirk for Zoom R16/24 playback 2015-10-19 12:38:09 +02:00
clock.c ALSA: usb-audio: Don't attempt to get Lifecam HD-5000 sample rate 2015-02-17 07:20:04 +01: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: Adjust max packet size calculation for tx_length_quirk 2015-10-19 12:38:10 +02:00
endpoint.h ALSA: usb-audio: Pass direct struct pointer instead of list_head 2014-11-04 15:09:10 +01:00
format.c ALSA: usb-audio: Fix audio output on Roland SC-D70 sound module 2015-04-21 07:59:10 +02:00
format.h ALSA: usb-audio: store protocol version in struct audioformat 2013-06-27 21:59:47 +02:00
helper.c ALSA: usb-audio: support wireless devices in snd_usb_parse_datainterval 2013-10-07 12:52:21 +02:00
helper.h ALSA: usb-audio: increase control transfer timeout 2011-09-27 09:21:48 +02:00
midi.c ALSA: usb-audio: prevent CH345 multiport output SysEx corruption 2015-11-16 08:59:24 +01:00
midi.h ALSA: usb-audio: Whitespace cleanups for sound/usb/midi.* 2014-08-05 20:08:00 +02:00
mixer.c ALSA: usb-audio: correct the value cache check. 2015-08-28 10:38:25 +02:00
mixer.h ALSA: usb-audio: Fix parameter block size for UAC2 control requests 2015-08-14 16:26:50 +02:00
mixer_maps.c ALSA: usb-audio: add dB range mapping for some devices 2015-07-29 09:28:02 +02:00
mixer_quirks.c ALSA: usb-audio: harmless underflow in snd_audigy2nx_led_put() 2015-09-28 14:33:03 +02:00
mixer_quirks.h ALSA: usb-mixer: factor out quirks 2010-03-12 12:20:26 +01:00
mixer_scarlett.c ALSA: usb-audio: Fix Scarlett 6i6 initialization typo 2014-12-18 08:39:17 +01:00
mixer_scarlett.h ALSA: usb-audio: Scarlett mixer interface for 6i6, 18i6, 18i8 and 18i20 2014-11-13 07:32:39 +01:00
pcm.c ALSA: USB-audio: Add quirk for Zoom R16/24 playback 2015-10-19 12:38:09 +02:00
pcm.h ALSA: usb: refine delay information with USB frame counter 2011-09-12 10:30:20 +02:00
power.h ALSA: usbaudio: implement USB autosuspend 2011-03-11 14:59:29 +01:00
proc.c ALSA: usb-audio: Avoid nested autoresume calls 2015-08-26 15:38:25 +02:00
proc.h ALSA: usb-audio: refactor code 2010-03-05 08:17:14 +01:00
quirks-table.h ALSA: usb-audio: prevent CH345 multiport output SysEx corruption 2015-11-16 08:59:24 +01:00
quirks.c ALSA: usb-audio: prevent CH345 multiport output SysEx corruption 2015-11-16 08:59:24 +01:00
quirks.h ALSA: usb-audio: Don't attempt to get Lifecam HD-5000 sample rate 2015-02-17 07:20:04 +01:00
stream.c ALSA: USB-audio: Add quirk for Zoom R16/24 playback 2015-10-19 12:38:09 +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-11-16 08:59:24 +01:00