public inbox for linux-sound@vger.kernel.org
 help / color / mirror / Atom feed
* [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