diff options
-rw-r--r-- | sound/usb/midi.c | 3 | ||||
-rw-r--r-- | sound/usb/quirks-table.h | 11 | ||||
-rw-r--r-- | sound/usb/quirks.c | 1 | ||||
-rw-r--r-- | sound/usb/usbaudio.h | 1 |
4 files changed, 16 insertions, 0 deletions
diff --git a/sound/usb/midi.c b/sound/usb/midi.c index 68e9f9a83fde..010094abf752 100644 --- a/sound/usb/midi.c +++ b/sound/usb/midi.c | |||
@@ -2379,6 +2379,9 @@ int snd_usbmidi_create(struct snd_card *card, | |||
2379 | 2379 | ||
2380 | err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); | 2380 | err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); |
2381 | break; | 2381 | break; |
2382 | case QUIRK_MIDI_CH345: | ||
2383 | err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); | ||
2384 | break; | ||
2382 | default: | 2385 | default: |
2383 | dev_err(&umidi->dev->dev, "invalid quirk type %d\n", | 2386 | dev_err(&umidi->dev->dev, "invalid quirk type %d\n", |
2384 | quirk->type); | 2387 | quirk->type); |
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h index 1a1e2e4df35e..c60a776e815d 100644 --- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h | |||
@@ -2829,6 +2829,17 @@ YAMAHA_DEVICE(0x7010, "UB99"), | |||
2829 | .idProduct = 0x1020, | 2829 | .idProduct = 0x1020, |
2830 | }, | 2830 | }, |
2831 | 2831 | ||
2832 | /* QinHeng devices */ | ||
2833 | { | ||
2834 | USB_DEVICE(0x1a86, 0x752d), | ||
2835 | .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { | ||
2836 | .vendor_name = "QinHeng", | ||
2837 | .product_name = "CH345", | ||
2838 | .ifnum = 1, | ||
2839 | .type = QUIRK_MIDI_CH345 | ||
2840 | } | ||
2841 | }, | ||
2842 | |||
2832 | /* KeithMcMillen Stringport */ | 2843 | /* KeithMcMillen Stringport */ |
2833 | { | 2844 | { |
2834 | USB_DEVICE(0x1f38, 0x0001), | 2845 | USB_DEVICE(0x1f38, 0x0001), |
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index 5ca80e7d30cd..7016ad898187 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c | |||
@@ -538,6 +538,7 @@ int snd_usb_create_quirk(struct snd_usb_audio *chip, | |||
538 | [QUIRK_MIDI_CME] = create_any_midi_quirk, | 538 | [QUIRK_MIDI_CME] = create_any_midi_quirk, |
539 | [QUIRK_MIDI_AKAI] = create_any_midi_quirk, | 539 | [QUIRK_MIDI_AKAI] = create_any_midi_quirk, |
540 | [QUIRK_MIDI_FTDI] = create_any_midi_quirk, | 540 | [QUIRK_MIDI_FTDI] = create_any_midi_quirk, |
541 | [QUIRK_MIDI_CH345] = create_any_midi_quirk, | ||
541 | [QUIRK_AUDIO_STANDARD_INTERFACE] = create_standard_audio_quirk, | 542 | [QUIRK_AUDIO_STANDARD_INTERFACE] = create_standard_audio_quirk, |
542 | [QUIRK_AUDIO_FIXED_ENDPOINT] = create_fixed_stream_quirk, | 543 | [QUIRK_AUDIO_FIXED_ENDPOINT] = create_fixed_stream_quirk, |
543 | [QUIRK_AUDIO_EDIROL_UAXX] = create_uaxx_quirk, | 544 | [QUIRK_AUDIO_EDIROL_UAXX] = create_uaxx_quirk, |
diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h index 15a12715bd05..b665d85555cb 100644 --- a/sound/usb/usbaudio.h +++ b/sound/usb/usbaudio.h | |||
@@ -95,6 +95,7 @@ enum quirk_type { | |||
95 | QUIRK_MIDI_AKAI, | 95 | QUIRK_MIDI_AKAI, |
96 | QUIRK_MIDI_US122L, | 96 | QUIRK_MIDI_US122L, |
97 | QUIRK_MIDI_FTDI, | 97 | QUIRK_MIDI_FTDI, |
98 | QUIRK_MIDI_CH345, | ||
98 | QUIRK_AUDIO_STANDARD_INTERFACE, | 99 | QUIRK_AUDIO_STANDARD_INTERFACE, |
99 | QUIRK_AUDIO_FIXED_ENDPOINT, | 100 | QUIRK_AUDIO_FIXED_ENDPOINT, |
100 | QUIRK_AUDIO_EDIROL_UAXX, | 101 | QUIRK_AUDIO_EDIROL_UAXX, |