Takashi Iwai 4e80ba
From 7501f472977df233d039d86c6981e0641708e1ca Mon Sep 17 00:00:00 2001
Takashi Iwai 4e80ba
From: Geraldo Nascimento <geraldogabriel@gmail.com>
Takashi Iwai 4e80ba
Date: Wed, 3 May 2023 18:02:06 -0300
Takashi Iwai 4e80ba
Subject: [PATCH] ALSA: usb-audio: Add quirk for Pioneer DDJ-800
Takashi Iwai 4e80ba
Mime-version: 1.0
Takashi Iwai 4e80ba
Content-type: text/plain; charset=UTF-8
Takashi Iwai 4e80ba
Content-transfer-encoding: 8bit
Takashi Iwai 4e80ba
Git-commit: 7501f472977df233d039d86c6981e0641708e1ca
Takashi Iwai 4e80ba
Patch-mainline: v6.4-rc1
Takashi Iwai 4e80ba
References: git-fixes
Takashi Iwai 4e80ba
Takashi Iwai 4e80ba
One more Pioneer quirk, this time for DDJ-800, which is quite similar like
Takashi Iwai 4e80ba
other DJ DDJ models but with slightly different EPs or channels.
Takashi Iwai 4e80ba
Takashi Iwai 4e80ba
Signed-off-by: Geraldo Nascimento <geraldogabriel@gmail.com>
Takashi Iwai 4e80ba
Tested-by: Grégory Desor <gregory.desor@free.fr>
Takashi Iwai 4e80ba
Cc: <stable@vger.kernel.org>
Takashi Iwai 4e80ba
Link: https://lore.kernel.org/r/ZFLLzgEcsSF5aIHG@geday
Takashi Iwai 4e80ba
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 4e80ba
Takashi Iwai 4e80ba
---
Takashi Iwai 4e80ba
 sound/usb/quirks-table.h | 58 ++++++++++++++++++++++++++++++++++++++++
Takashi Iwai 4e80ba
 1 file changed, 58 insertions(+)
Takashi Iwai 4e80ba
Takashi Iwai 4e80ba
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
Takashi Iwai 4e80ba
index 271884e35003..efb4a3311cc5 100644
Takashi Iwai 4e80ba
--- a/sound/usb/quirks-table.h
Takashi Iwai 4e80ba
+++ b/sound/usb/quirks-table.h
Takashi Iwai 4e80ba
@@ -3884,6 +3884,64 @@ YAMAHA_DEVICE(0x7010, "UB99"),
Takashi Iwai 4e80ba
 	}
Takashi Iwai 4e80ba
 },
Takashi Iwai 4e80ba
 
Takashi Iwai 4e80ba
+{
Takashi Iwai 4e80ba
+	/*
Takashi Iwai 4e80ba
+	 * PIONEER DJ DDJ-800
Takashi Iwai 4e80ba
+	 * PCM is 6 channels out, 6 channels in @ 44.1 fixed
Takashi Iwai 4e80ba
+	 * The Feedback for the output is the input
Takashi Iwai 4e80ba
+	 */
Takashi Iwai 4e80ba
+	USB_DEVICE_VENDOR_SPEC(0x2b73, 0x0029),
Takashi Iwai 4e80ba
+		.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
Takashi Iwai 4e80ba
+		.ifnum = QUIRK_ANY_INTERFACE,
Takashi Iwai 4e80ba
+		.type = QUIRK_COMPOSITE,
Takashi Iwai 4e80ba
+		.data = (const struct snd_usb_audio_quirk[]) {
Takashi Iwai 4e80ba
+			{
Takashi Iwai 4e80ba
+				.ifnum = 0,
Takashi Iwai 4e80ba
+				.type = QUIRK_AUDIO_FIXED_ENDPOINT,
Takashi Iwai 4e80ba
+				.data = &(const struct audioformat) {
Takashi Iwai 4e80ba
+					.formats = SNDRV_PCM_FMTBIT_S24_3LE,
Takashi Iwai 4e80ba
+					.channels = 6,
Takashi Iwai 4e80ba
+					.iface = 0,
Takashi Iwai 4e80ba
+					.altsetting = 1,
Takashi Iwai 4e80ba
+					.altset_idx = 1,
Takashi Iwai 4e80ba
+					.endpoint = 0x01,
Takashi Iwai 4e80ba
+					.ep_attr = USB_ENDPOINT_XFER_ISOC|
Takashi Iwai 4e80ba
+						USB_ENDPOINT_SYNC_ASYNC,
Takashi Iwai 4e80ba
+					.rates = SNDRV_PCM_RATE_44100,
Takashi Iwai 4e80ba
+					.rate_min = 44100,
Takashi Iwai 4e80ba
+					.rate_max = 44100,
Takashi Iwai 4e80ba
+					.nr_rates = 1,
Takashi Iwai 4e80ba
+					.rate_table = (unsigned int[]) { 44100 }
Takashi Iwai 4e80ba
+				}
Takashi Iwai 4e80ba
+			},
Takashi Iwai 4e80ba
+			{
Takashi Iwai 4e80ba
+				.ifnum = 0,
Takashi Iwai 4e80ba
+				.type = QUIRK_AUDIO_FIXED_ENDPOINT,
Takashi Iwai 4e80ba
+				.data = &(const struct audioformat) {
Takashi Iwai 4e80ba
+					.formats = SNDRV_PCM_FMTBIT_S24_3LE,
Takashi Iwai 4e80ba
+					.channels = 6,
Takashi Iwai 4e80ba
+					.iface = 0,
Takashi Iwai 4e80ba
+					.altsetting = 1,
Takashi Iwai 4e80ba
+					.altset_idx = 1,
Takashi Iwai 4e80ba
+					.endpoint = 0x82,
Takashi Iwai 4e80ba
+					.ep_idx = 1,
Takashi Iwai 4e80ba
+					.ep_attr = USB_ENDPOINT_XFER_ISOC|
Takashi Iwai 4e80ba
+						USB_ENDPOINT_SYNC_ASYNC|
Takashi Iwai 4e80ba
+					USB_ENDPOINT_USAGE_IMPLICIT_FB,
Takashi Iwai 4e80ba
+					.rates = SNDRV_PCM_RATE_44100,
Takashi Iwai 4e80ba
+					.rate_min = 44100,
Takashi Iwai 4e80ba
+					.rate_max = 44100,
Takashi Iwai 4e80ba
+					.nr_rates = 1,
Takashi Iwai 4e80ba
+					.rate_table = (unsigned int[]) { 44100 }
Takashi Iwai 4e80ba
+				}
Takashi Iwai 4e80ba
+			},
Takashi Iwai 4e80ba
+			{
Takashi Iwai 4e80ba
+				.ifnum = -1
Takashi Iwai 4e80ba
+			}
Takashi Iwai 4e80ba
+		}
Takashi Iwai 4e80ba
+	}
Takashi Iwai 4e80ba
+},
Takashi Iwai 4e80ba
+
Takashi Iwai 4e80ba
 /*
Takashi Iwai 4e80ba
  * MacroSilicon MS2100/MS2106 based AV capture cards
Takashi Iwai 4e80ba
  *
Takashi Iwai 4e80ba
-- 
Takashi Iwai 4e80ba
2.35.3
Takashi Iwai 4e80ba