ALSA: usb-audio: Add quirk for Focusrite Scarlett 18i8
PATCH 1/1 ALSA: usb-audio: Add quirk for Focusrite Scarlett 18i8
This patch is similar to commit 1762a59d8e8b5e99f6f4a0f292b40f3cacb108ba. The same non-standard interface descriptor causes snd_usb_create_mixer() to fail for the Focusrite Scarlett 18i8 as well.
--- sound/usb/quirks-table.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+)
sound/usb/quirks-table.h +46 -0
@@ -3232,6 +3232,52 @@ YAMAHA_DEVICE(0x7010, "UB99"), } } }, +{ +/* +* Focusrite Scarlett 18i8 +* +* Avoid mixer creation similar to the Scarlett 18i6 interface. +*/ + USB_DEVICE(0x1235, 0x8014), + .driver_info = (unsigned long ) & (const struct snd_usb_audio_quirk ) { + .vendor_name ="Focusrite" , + .product_name ="Scarlett 18i8" , + .ifnum =QUIRK_ANY_INTERFACE , + .type =QUIRK_COMPOSITE , + .data = & (const struct snd_usb_audio_quirk []) { + { +/* InterfaceSubClass 1 (Control Device) */ + .ifnum =0 , + .type =QUIRK_IGNORE_INTERFACE + }, + { + .ifnum =1 , + .type =QUIRK_AUDIO_STANDARD_INTERFACE + }, + { + .ifnum =2 , + .type =QUIRK_AUDIO_STANDARD_INTERFACE + }, + { +/* InterfaceSubClass 1 (Control Device) */ + .ifnum =3 , + .type =QUIRK_IGNORE_INTERFACE + }, + { + .ifnum =4 , + .type =QUIRK_MIDI_STANDARD_INTERFACE + }, + { +/* InterfaceSubClass 1 (Device Firmware Update) */ + .ifnum =5 , + .type =QUIRK_IGNORE_INTERFACE + }, + { + .ifnum =-1 + } + } + } +}, {/*
Signature · 1 line
1.7.9.5
Quoted 3 lines · Chris J Arges
This patch is similar to commit
1762a59d8e8b5e99f6f4a0f292b40f3cacb108ba. The same non-standard interface descriptor causessnd_usb_create_mixer()to fail for the Focusrite Scarlett 18i8 as well.
Did you test this on a recent kernel? I don't think this quirk or the quirk introduced by 1762a59d "ALSA: usb-audio: Add quirk for Focusrite Scarlett 18i6" is necessary since kernel 3.9, as it includes:
4d7b86c98 "ALSA: snd-usb: mixer: propagate errors up the call chain" 83ea5d18d "ALSA: snd-usb: mixer: ignore -EINVAL in snd_usb_mixer_controls()" 61ac51301 "ALSA: usb: Parse UAC2 extension unit like for UAC1"
Those were tested on a Focusrite Scarlett 8i6, but the lsusb output from 18i6 and 8i6 looks similar,
http://www.mail-archive.com/[email protected]/msg29426.html
http://www.mail-archive.com/[email protected]/msg27776.html
I'm guessing the 18i8 isn't that different.
Torstein
Quoted 63 lines
--- sound/usb/quirks-table.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+)sound/usb/quirks-table.h +46
-0@@ -3232,6 +3232,52 @@ YAMAHA_DEVICE(0x7010, "UB99"), } } }, +{ +/* +* Focusrite Scarlett 18i8 +* +* Avoid mixer creation similar to the Scarlett 18i6 interface. +*/ + USB_DEVICE(0x1235, 0x8014), + .driver_info = (unsigned long ) & (const struct snd_usb_audio_quirk ) { + .vendor_name ="Focusrite" , + .product_name ="Scarlett 18i8" , + .ifnum =QUIRK_ANY_INTERFACE , + .type =QUIRK_COMPOSITE , + .data = & (const struct snd_usb_audio_quirk []) { + { +/* InterfaceSubClass 1 (Control Device) */ + .ifnum =0 , + .type =QUIRK_IGNORE_INTERFACE + }, + { + .ifnum =1 , + .type =QUIRK_AUDIO_STANDARD_INTERFACE + }, + { + .ifnum =2 , + .type =QUIRK_AUDIO_STANDARD_INTERFACE + }, + { +/* InterfaceSubClass 1 (Control Device) */ + .ifnum =3 , + .type =QUIRK_IGNORE_INTERFACE + }, + { + .ifnum =4 , + .type =QUIRK_MIDI_STANDARD_INTERFACE + }, + { +/* InterfaceSubClass 1 (Device Firmware Update) */ + .ifnum =5 , + .type =QUIRK_IGNORE_INTERFACE + }, + { + .ifnum =-1 + } + } + } +}, {/* Signature · 1 line
1.7.9.5
Quoted 13 lines · Torstein Hegge
Quoted 3 lines · Chris J Arges
This patch is similar to commit
1762a59d8e8b5e99f6f4a0f292b40f3cacb108ba. The same non-standard interface descriptor causessnd_usb_create_mixer()to fail for the Focusrite Scarlett 18i8 as well.Did you test this on a recent kernel? I don't think this quirk or the quirk introduced by
1762a59d"ALSA: usb-audio: Add quirk for Focusrite Scarlett 18i6" is necessary since kernel 3.9, as it includes:
4d7b86c98"ALSA: snd-usb: mixer: propagate errors up the call chain"83ea5d18d"ALSA: snd-usb: mixer: ignore-EINVALinsnd_usb_mixer_controls()"61ac51301"ALSA: usb: Parse UAC2 extension unit like for UAC1"
Quoted 6 lines
Those were tested on a Focusrite Scarlett 8i6, but the lsusb output from 18i6 and 8i6 looks similar,
http://www.mail-archive.com/[email protected]/msg29426.html
http://www.mail-archive.com/[email protected]/msg27776.html
I'm guessing the 18i8 isn't that different.
Re-testing this, I see that you are right. The mixer still doesn't work, but at least its usable for playback/recording/midi.
Ignore this patch then.
Thanks,
--chris j arges
Quoted 66 lines
Torstein
Quoted 63 lines
--- sound/usb/quirks-table.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+)sound/usb/quirks-table.h +46
-0@@ -3232,6 +3232,52 @@ YAMAHA_DEVICE(0x7010, "UB99"), } } }, +{ +/* +* Focusrite Scarlett 18i8 +* +* Avoid mixer creation similar to the Scarlett 18i6 interface. +*/ + USB_DEVICE(0x1235, 0x8014), + .driver_info = (unsigned long ) & (const struct snd_usb_audio_quirk ) { + .vendor_name ="Focusrite" , + .product_name ="Scarlett 18i8" , + .ifnum =QUIRK_ANY_INTERFACE , + .type =QUIRK_COMPOSITE , + .data = & (const struct snd_usb_audio_quirk []) { + { +/* InterfaceSubClass 1 (Control Device) */ + .ifnum =0 , + .type =QUIRK_IGNORE_INTERFACE + }, + { + .ifnum =1 , + .type =QUIRK_AUDIO_STANDARD_INTERFACE + }, + { + .ifnum =2 , + .type =QUIRK_AUDIO_STANDARD_INTERFACE + }, + { +/* InterfaceSubClass 1 (Control Device) */ + .ifnum =3 , + .type =QUIRK_IGNORE_INTERFACE + }, + { + .ifnum =4 , + .type =QUIRK_MIDI_STANDARD_INTERFACE + }, + { +/* InterfaceSubClass 1 (Device Firmware Update) */ + .ifnum =5 , + .type =QUIRK_IGNORE_INTERFACE + }, + { + .ifnum =-1 + } + } + } +}, {/* Signature · 1 line
1.7.9.5
At Thu, 18 Jul 2013 10:16:29 -0500,
Quoted 22 lines · Chris J Arges
Quoted 13 lines · Torstein Hegge
Quoted 3 lines · Chris J Arges
This patch is similar to commit
1762a59d8e8b5e99f6f4a0f292b40f3cacb108ba. The same non-standard interface descriptor causessnd_usb_create_mixer()to fail for the Focusrite Scarlett 18i8 as well.Did you test this on a recent kernel? I don't think this quirk or the quirk introduced by
1762a59d"ALSA: usb-audio: Add quirk for Focusrite Scarlett 18i6" is necessary since kernel 3.9, as it includes:
4d7b86c98"ALSA: snd-usb: mixer: propagate errors up the call chain"83ea5d18d"ALSA: snd-usb: mixer: ignore-EINVALinsnd_usb_mixer_controls()"61ac51301"ALSA: usb: Parse UAC2 extension unit like for UAC1"Quoted 6 lines
Those were tested on a Focusrite Scarlett 8i6, but the lsusb output from 18i6 and 8i6 looks similar,
http://www.mail-archive.com/[email protected]/msg29426.html
http://www.mail-archive.com/[email protected]/msg27776.html
I'm guessing the 18i8 isn't that different.
Quoted 3 lines
Re-testing this, I see that you are right. The mixer still doesn't work, but at least its usable for playback/recording/midi.
Ignore this patch then.
OK, thanks for a quick update.
Takashi