* [PATCH v3] ALSA: usb-audio: Add support for Arturia AF16Rig
@ 2026-03-28 8:22 Phil Willoughby
2026-03-28 8:58 ` Takashi Iwai
0 siblings, 1 reply; 2+ messages in thread
From: Phil Willoughby @ 2026-03-28 8:22 UTC (permalink / raw)
To: linux-sound; +Cc: Phil Willoughby, Jaroslav Kysela, Takashi Iwai
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Tested-By: Phil Willoughby <willerz@gmail.com>
Signed-off-by: Phil Willoughby <willerz@gmail.com>
---
Removed the change to clock.c as that code path isn't used when the
quirks table is filled-in.
sound/usb/quirks-table.h | 165 +++++++++++++++++++++++++++++++++++++++
1 file changed, 165 insertions(+)
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
index eafc0d73cca1..8f79a15055a6 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -3900,5 +3900,170 @@ YAMAHA_DEVICE(0x7010, "UB99"),
QUIRK_RME_DIGIFACE(0x3f8c),
QUIRK_RME_DIGIFACE(0x3fa0),
+/* Arturia AudioFuse 16Rig Audio */
+/* AF16Rig MIDI has USB PID 0xaf21 and appears to work OK without quirks */
+{
+ USB_DEVICE(0x1c75, 0xaf20),
+ QUIRK_DRIVER_INFO {
+ .vendor_name = "Arturia",
+ .product_name = "AF16Rig",
+ QUIRK_DATA_COMPOSITE {
+ { QUIRK_DATA_STANDARD_MIXER(0) },
+ {
+ QUIRK_DATA_AUDIOFORMAT(1) { /* Playback */
+ .formats = SNDRV_PCM_FMTBIT_S32_LE,
+ .channels = 34,
+ .fmt_type = UAC_FORMAT_TYPE_I_PCM,
+ .fmt_bits = 24,
+ .fmt_sz = 4,
+ .iface = 1,
+ .altsetting = 1,
+ .altset_idx = 1,
+ .endpoint = 0x01,
+ .ep_attr = USB_ENDPOINT_XFER_ISOC|
+ USB_ENDPOINT_SYNC_ASYNC,
+ .datainterval = 1,
+ .protocol = UAC_VERSION_2,
+ .maxpacksize = 0x03b8,
+ .rates = SNDRV_PCM_RATE_44100|
+ SNDRV_PCM_RATE_48000,
+ .rate_min = 44100,
+ .rate_max = 48000,
+ .nr_rates = 2,
+ .rate_table = (unsigned int[]) { 44100, 48000 },
+ .clock = 41,
+ }
+ },
+ {
+ QUIRK_DATA_AUDIOFORMAT(1) { /* Playback */
+ .formats = SNDRV_PCM_FMTBIT_S32_LE,
+ .channels = 18,
+ .fmt_type = UAC_FORMAT_TYPE_I_PCM,
+ .fmt_bits = 24,
+ .fmt_sz = 4,
+ .iface = 1,
+ .altsetting = 1,
+ .altset_idx = 1,
+ .endpoint = 0x01,
+ .ep_attr = USB_ENDPOINT_XFER_ISOC|
+ USB_ENDPOINT_SYNC_ASYNC,
+ .datainterval = 1,
+ .protocol = UAC_VERSION_2,
+ .maxpacksize = 0x03a8,
+ .rates = SNDRV_PCM_RATE_88200|
+ SNDRV_PCM_RATE_96000,
+ .rate_min = 88200,
+ .rate_max = 96000,
+ .nr_rates = 2,
+ .rate_table = (unsigned int[]) { 88200, 96000 },
+ .clock = 41,
+ }
+ },
+ {
+ QUIRK_DATA_AUDIOFORMAT(1) { /* Playback */
+ .formats = SNDRV_PCM_FMTBIT_S32_LE,
+ .channels = 10,
+ .fmt_type = UAC_FORMAT_TYPE_I_PCM,
+ .fmt_bits = 24,
+ .fmt_sz = 4,
+ .iface = 1,
+ .altsetting = 3,
+ .altset_idx = 3,
+ .endpoint = 0x01,
+ .ep_attr = USB_ENDPOINT_XFER_ISOC|
+ USB_ENDPOINT_SYNC_ASYNC,
+ .datainterval = 1,
+ .protocol = UAC_VERSION_2,
+ .maxpacksize = 0x03e8,
+ .rates = SNDRV_PCM_RATE_176400|
+ SNDRV_PCM_RATE_192000,
+ .rate_min = 176400,
+ .rate_max = 192000,
+ .nr_rates = 2,
+ .rate_table = (unsigned int[]) { 176400, 192000 },
+ .clock = 41,
+ }
+ },
+ {
+ QUIRK_DATA_AUDIOFORMAT(2) { /* Capture */
+ .formats = SNDRV_PCM_FMTBIT_S32_LE,
+ .channels = 34,
+ .fmt_type = UAC_FORMAT_TYPE_I_PCM,
+ .fmt_bits = 24,
+ .fmt_sz = 4,
+ .iface = 2,
+ .altsetting = 1,
+ .altset_idx = 1,
+ .endpoint = 0x81,
+ .ep_attr = USB_ENDPOINT_XFER_ISOC|
+ USB_ENDPOINT_SYNC_ASYNC,
+ .datainterval = 1,
+ .protocol = UAC_VERSION_2,
+ .maxpacksize = 0x03b8,
+ .rates = SNDRV_PCM_RATE_44100|
+ SNDRV_PCM_RATE_48000,
+ .rate_min = 44100,
+ .rate_max = 48000,
+ .nr_rates = 2,
+ .rate_table = (unsigned int[]) { 44100, 48000 },
+ .clock = 41,
+ }
+ },
+ {
+ QUIRK_DATA_AUDIOFORMAT(2) { /* Capture */
+ .formats = SNDRV_PCM_FMTBIT_S32_LE,
+ .channels = 18,
+ .fmt_type = UAC_FORMAT_TYPE_I_PCM,
+ .fmt_bits = 24,
+ .fmt_sz = 4,
+ .iface = 2,
+ .altsetting = 2,
+ .altset_idx = 2,
+ .endpoint = 0x81,
+ .ep_attr = USB_ENDPOINT_XFER_ISOC|
+ USB_ENDPOINT_SYNC_ASYNC,
+ .datainterval = 1,
+ .protocol = UAC_VERSION_2,
+ .maxpacksize = 0x03a8,
+ .rates = SNDRV_PCM_RATE_88200|
+ SNDRV_PCM_RATE_96000,
+ .rate_min = 88200,
+ .rate_max = 96000,
+ .nr_rates = 2,
+ .rate_table = (unsigned int[]) { 88200, 96000 },
+ .clock = 41,
+ }
+ },
+ {
+ QUIRK_DATA_AUDIOFORMAT(2) { /* Capture */
+ .formats = SNDRV_PCM_FMTBIT_S32_LE,
+ .channels = 10,
+ .fmt_type = UAC_FORMAT_TYPE_I_PCM,
+ .fmt_bits = 24,
+ .fmt_sz = 4,
+ .iface = 2,
+ .altsetting = 3,
+ .altset_idx = 3,
+ .endpoint = 0x81,
+ .ep_attr = USB_ENDPOINT_XFER_ISOC|
+ USB_ENDPOINT_SYNC_ASYNC,
+ .datainterval = 1,
+ .protocol = UAC_VERSION_2,
+ .maxpacksize = 0x03e8,
+ .rates = SNDRV_PCM_RATE_176400|
+ SNDRV_PCM_RATE_192000,
+ .rate_min = 176400,
+ .rate_max = 192000,
+ .nr_rates = 2,
+ .rate_table = (unsigned int[]) { 176400, 192000 },
+ .clock = 41,
+ }
+ },
+ { QUIRK_DATA_IGNORE(3) }, /* Firmware update */
+ QUIRK_COMPOSITE_END
+ }
+ }
+},
+
#undef USB_DEVICE_VENDOR_SPEC
#undef USB_AUDIO_DEVICE
--
2.53.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH v3] ALSA: usb-audio: Add support for Arturia AF16Rig
2026-03-28 8:22 [PATCH v3] ALSA: usb-audio: Add support for Arturia AF16Rig Phil Willoughby
@ 2026-03-28 8:58 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2026-03-28 8:58 UTC (permalink / raw)
To: Phil Willoughby; +Cc: linux-sound, Jaroslav Kysela, Takashi Iwai
On Sat, 28 Mar 2026 09:22:40 +0100,
Phil Willoughby wrote:
>
> Cc: Jaroslav Kysela <perex@perex.cz>
> Cc: Takashi Iwai <tiwai@suse.com>
> Tested-By: Phil Willoughby <willerz@gmail.com>
> Signed-off-by: Phil Willoughby <willerz@gmail.com>
A patch without a proper patch description is absolutely no-go.
Please give enough information for what you change.
thanks,
Takashi
> ---
> Removed the change to clock.c as that code path isn't used when the
> quirks table is filled-in.
>
> sound/usb/quirks-table.h | 165 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 165 insertions(+)
>
> diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
> index eafc0d73cca1..8f79a15055a6 100644
> --- a/sound/usb/quirks-table.h
> +++ b/sound/usb/quirks-table.h
> @@ -3900,5 +3900,170 @@ YAMAHA_DEVICE(0x7010, "UB99"),
> QUIRK_RME_DIGIFACE(0x3f8c),
> QUIRK_RME_DIGIFACE(0x3fa0),
>
> +/* Arturia AudioFuse 16Rig Audio */
> +/* AF16Rig MIDI has USB PID 0xaf21 and appears to work OK without quirks */
> +{
> + USB_DEVICE(0x1c75, 0xaf20),
> + QUIRK_DRIVER_INFO {
> + .vendor_name = "Arturia",
> + .product_name = "AF16Rig",
> + QUIRK_DATA_COMPOSITE {
> + { QUIRK_DATA_STANDARD_MIXER(0) },
> + {
> + QUIRK_DATA_AUDIOFORMAT(1) { /* Playback */
> + .formats = SNDRV_PCM_FMTBIT_S32_LE,
> + .channels = 34,
> + .fmt_type = UAC_FORMAT_TYPE_I_PCM,
> + .fmt_bits = 24,
> + .fmt_sz = 4,
> + .iface = 1,
> + .altsetting = 1,
> + .altset_idx = 1,
> + .endpoint = 0x01,
> + .ep_attr = USB_ENDPOINT_XFER_ISOC|
> + USB_ENDPOINT_SYNC_ASYNC,
> + .datainterval = 1,
> + .protocol = UAC_VERSION_2,
> + .maxpacksize = 0x03b8,
> + .rates = SNDRV_PCM_RATE_44100|
> + SNDRV_PCM_RATE_48000,
> + .rate_min = 44100,
> + .rate_max = 48000,
> + .nr_rates = 2,
> + .rate_table = (unsigned int[]) { 44100, 48000 },
> + .clock = 41,
> + }
> + },
> + {
> + QUIRK_DATA_AUDIOFORMAT(1) { /* Playback */
> + .formats = SNDRV_PCM_FMTBIT_S32_LE,
> + .channels = 18,
> + .fmt_type = UAC_FORMAT_TYPE_I_PCM,
> + .fmt_bits = 24,
> + .fmt_sz = 4,
> + .iface = 1,
> + .altsetting = 1,
> + .altset_idx = 1,
> + .endpoint = 0x01,
> + .ep_attr = USB_ENDPOINT_XFER_ISOC|
> + USB_ENDPOINT_SYNC_ASYNC,
> + .datainterval = 1,
> + .protocol = UAC_VERSION_2,
> + .maxpacksize = 0x03a8,
> + .rates = SNDRV_PCM_RATE_88200|
> + SNDRV_PCM_RATE_96000,
> + .rate_min = 88200,
> + .rate_max = 96000,
> + .nr_rates = 2,
> + .rate_table = (unsigned int[]) { 88200, 96000 },
> + .clock = 41,
> + }
> + },
> + {
> + QUIRK_DATA_AUDIOFORMAT(1) { /* Playback */
> + .formats = SNDRV_PCM_FMTBIT_S32_LE,
> + .channels = 10,
> + .fmt_type = UAC_FORMAT_TYPE_I_PCM,
> + .fmt_bits = 24,
> + .fmt_sz = 4,
> + .iface = 1,
> + .altsetting = 3,
> + .altset_idx = 3,
> + .endpoint = 0x01,
> + .ep_attr = USB_ENDPOINT_XFER_ISOC|
> + USB_ENDPOINT_SYNC_ASYNC,
> + .datainterval = 1,
> + .protocol = UAC_VERSION_2,
> + .maxpacksize = 0x03e8,
> + .rates = SNDRV_PCM_RATE_176400|
> + SNDRV_PCM_RATE_192000,
> + .rate_min = 176400,
> + .rate_max = 192000,
> + .nr_rates = 2,
> + .rate_table = (unsigned int[]) { 176400, 192000 },
> + .clock = 41,
> + }
> + },
> + {
> + QUIRK_DATA_AUDIOFORMAT(2) { /* Capture */
> + .formats = SNDRV_PCM_FMTBIT_S32_LE,
> + .channels = 34,
> + .fmt_type = UAC_FORMAT_TYPE_I_PCM,
> + .fmt_bits = 24,
> + .fmt_sz = 4,
> + .iface = 2,
> + .altsetting = 1,
> + .altset_idx = 1,
> + .endpoint = 0x81,
> + .ep_attr = USB_ENDPOINT_XFER_ISOC|
> + USB_ENDPOINT_SYNC_ASYNC,
> + .datainterval = 1,
> + .protocol = UAC_VERSION_2,
> + .maxpacksize = 0x03b8,
> + .rates = SNDRV_PCM_RATE_44100|
> + SNDRV_PCM_RATE_48000,
> + .rate_min = 44100,
> + .rate_max = 48000,
> + .nr_rates = 2,
> + .rate_table = (unsigned int[]) { 44100, 48000 },
> + .clock = 41,
> + }
> + },
> + {
> + QUIRK_DATA_AUDIOFORMAT(2) { /* Capture */
> + .formats = SNDRV_PCM_FMTBIT_S32_LE,
> + .channels = 18,
> + .fmt_type = UAC_FORMAT_TYPE_I_PCM,
> + .fmt_bits = 24,
> + .fmt_sz = 4,
> + .iface = 2,
> + .altsetting = 2,
> + .altset_idx = 2,
> + .endpoint = 0x81,
> + .ep_attr = USB_ENDPOINT_XFER_ISOC|
> + USB_ENDPOINT_SYNC_ASYNC,
> + .datainterval = 1,
> + .protocol = UAC_VERSION_2,
> + .maxpacksize = 0x03a8,
> + .rates = SNDRV_PCM_RATE_88200|
> + SNDRV_PCM_RATE_96000,
> + .rate_min = 88200,
> + .rate_max = 96000,
> + .nr_rates = 2,
> + .rate_table = (unsigned int[]) { 88200, 96000 },
> + .clock = 41,
> + }
> + },
> + {
> + QUIRK_DATA_AUDIOFORMAT(2) { /* Capture */
> + .formats = SNDRV_PCM_FMTBIT_S32_LE,
> + .channels = 10,
> + .fmt_type = UAC_FORMAT_TYPE_I_PCM,
> + .fmt_bits = 24,
> + .fmt_sz = 4,
> + .iface = 2,
> + .altsetting = 3,
> + .altset_idx = 3,
> + .endpoint = 0x81,
> + .ep_attr = USB_ENDPOINT_XFER_ISOC|
> + USB_ENDPOINT_SYNC_ASYNC,
> + .datainterval = 1,
> + .protocol = UAC_VERSION_2,
> + .maxpacksize = 0x03e8,
> + .rates = SNDRV_PCM_RATE_176400|
> + SNDRV_PCM_RATE_192000,
> + .rate_min = 176400,
> + .rate_max = 192000,
> + .nr_rates = 2,
> + .rate_table = (unsigned int[]) { 176400, 192000 },
> + .clock = 41,
> + }
> + },
> + { QUIRK_DATA_IGNORE(3) }, /* Firmware update */
> + QUIRK_COMPOSITE_END
> + }
> + }
> +},
> +
> #undef USB_DEVICE_VENDOR_SPEC
> #undef USB_AUDIO_DEVICE
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-03-28 8:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-28 8:22 [PATCH v3] ALSA: usb-audio: Add support for Arturia AF16Rig Phil Willoughby
2026-03-28 8:58 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox