diff options
Diffstat (limited to 'sound/usb')
-rw-r--r-- | sound/usb/mixer_maps.c | 15 | ||||
-rw-r--r-- | sound/usb/mixer_scarlett.c | 2 | ||||
-rw-r--r-- | sound/usb/quirks.c | 5 |
3 files changed, 16 insertions, 6 deletions
diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c index 1994d41348f..b703cb3cda1 100644 --- a/sound/usb/mixer_maps.c +++ b/sound/usb/mixer_maps.c @@ -333,8 +333,11 @@ static struct usbmix_name_map gamecom780_map[] = { {} }; -static const struct usbmix_name_map kef_x300a_map[] = { - { 10, NULL }, /* firmware locks up (?) when we try to access this FU */ +/* some (all?) SCMS USB3318 devices are affected by a firmware lock up + * when anything attempts to access FU 10 (control) + */ +static const struct usbmix_name_map scms_usb3318_map[] = { + { 10, NULL }, { 0 } }; @@ -434,8 +437,14 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = { .map = ebox44_map, }, { + /* KEF X300A */ .id = USB_ID(0x27ac, 0x1000), - .map = kef_x300a_map, + .map = scms_usb3318_map, + }, + { + /* Arcam rPAC */ + .id = USB_ID(0x25c4, 0x0003), + .map = scms_usb3318_map, }, { 0 } /* terminator */ }; diff --git a/sound/usb/mixer_scarlett.c b/sound/usb/mixer_scarlett.c index 9109652b88b..7438e7c4a84 100644 --- a/sound/usb/mixer_scarlett.c +++ b/sound/usb/mixer_scarlett.c @@ -655,7 +655,7 @@ static struct scarlett_device_info s6i6_info = { .names = NULL }, - .num_controls = 0, + .num_controls = 9, .controls = { { .num = 0, .type = SCARLETT_OUTPUTS, .name = "Monitor" }, { .num = 1, .type = SCARLETT_OUTPUTS, .name = "Headphone" }, diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index 4dbfb3d18ee..a7398412310 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@ -1245,8 +1245,9 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip, /* XMOS based USB DACs */ switch (chip->usb_id) { - /* iFi Audio micro/nano iDSD */ - case USB_ID(0x20b1, 0x3008): + case USB_ID(0x20b1, 0x3008): /* iFi Audio micro/nano iDSD */ + case USB_ID(0x20b1, 0x2008): /* Matrix Audio X-Sabre */ + case USB_ID(0x20b1, 0x300a): /* Matrix Audio Mini-i Pro */ if (fp->altsetting == 2) return SNDRV_PCM_FMTBIT_DSD_U32_BE; break; |