]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ALSA: usb-audio: More comprehensive mixer map for ASUS ROG Zenith II
authorTakashi Iwai <tiwai@suse.de>
Tue, 9 Aug 2022 07:32:59 +0000 (09:32 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Aug 2022 09:37:51 +0000 (11:37 +0200)
commit 6bc2906253e723d1ab1acc652b55b83e286bfec2 upstream.

ASUS ROG Zenith II has two USB interfaces, one for the front headphone
and another for the rest I/O.  Currently we provided the mixer mapping
for the latter but with an incomplete form.

This patch corrects and provides more comprehensive mixer mapping, as
well as providing the proper device names for both the front headphone
and main audio.

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=211005
Fixes: 2a48218f8e23 ("ALSA: usb-audio: Add mixer workaround for TRX40 and co")
Link: https://lore.kernel.org/r/20220809073259.18849-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/usb/card.c
sound/usb/mixer_maps.c

index 45fc217e4e97bc8cc8eec63ed5671a9d6fb27f9a..a3e06a71cf356719f99c80381c07a5502c4c2d5d 100644 (file)
@@ -379,6 +379,14 @@ static const struct usb_audio_device_name usb_audio_names[] = {
 
        DEVICE_NAME(0x046d, 0x0990, "Logitech, Inc.", "QuickCam Pro 9000"),
 
+       /* ASUS ROG Zenith II: this machine has also two devices, one for
+        * the front headphone and another for the rest
+        */
+       PROFILE_NAME(0x0b05, 0x1915, "ASUS", "Zenith II Front Headphone",
+                    "Zenith-II-Front-Headphone"),
+       PROFILE_NAME(0x0b05, 0x1916, "ASUS", "Zenith II Main Audio",
+                    "Zenith-II-Main-Audio"),
+
        /* ASUS ROG Strix */
        PROFILE_NAME(0x0b05, 0x1917,
                     "Realtek", "ALC1220-VB-DT", "Realtek-ALC1220-VB-Desktop"),
index 81ace832d7e42da21935ef4e2c4c06dbcf17eeb7..b708a240a5f06de9ada5178fdbbf11eb03052b97 100644 (file)
@@ -367,13 +367,28 @@ static const struct usbmix_name_map corsair_virtuoso_map[] = {
        { 0 }
 };
 
-/* Some mobos shipped with a dummy HD-audio show the invalid GET_MIN/GET_MAX
- * response for Input Gain Pad (id=19, control=12) and the connector status
- * for SPDIF terminal (id=18).  Skip them.
- */
-static const struct usbmix_name_map asus_rog_map[] = {
-       { 18, NULL }, /* OT, connector control */
-       { 19, NULL, 12 }, /* FU, Input Gain Pad */
+/* ASUS ROG Zenith II with Realtek ALC1220-VB */
+static const struct usbmix_name_map asus_zenith_ii_map[] = {
+       { 19, NULL, 12 }, /* FU, Input Gain Pad - broken response, disabled */
+       { 16, "Speaker" },              /* OT */
+       { 22, "Speaker Playback" },     /* FU */
+       { 7, "Line" },                  /* IT */
+       { 19, "Line Capture" },         /* FU */
+       { 8, "Mic" },                   /* IT */
+       { 20, "Mic Capture" },          /* FU */
+       { 9, "Front Mic" },             /* IT */
+       { 21, "Front Mic Capture" },    /* FU */
+       { 17, "IEC958" },               /* OT */
+       { 23, "IEC958 Playback" },      /* FU */
+       {}
+};
+
+static const struct usbmix_connector_map asus_zenith_ii_connector_map[] = {
+       { 10, 16 },     /* (Back) Speaker */
+       { 11, 17 },     /* SPDIF */
+       { 13, 7 },      /* Line */
+       { 14, 8 },      /* Mic */
+       { 15, 9 },      /* Front Mic */
        {}
 };
 
@@ -590,9 +605,10 @@ static const struct usbmix_ctl_map usbmix_ctl_maps[] = {
                .map = trx40_mobo_map,
                .connector_map = trx40_mobo_connector_map,
        },
-       {       /* ASUS ROG Zenith II */
+       {       /* ASUS ROG Zenith II (main audio) */
                .id = USB_ID(0x0b05, 0x1916),
-               .map = asus_rog_map,
+               .map = asus_zenith_ii_map,
+               .connector_map = asus_zenith_ii_connector_map,
        },
        {       /* ASUS ROG Strix */
                .id = USB_ID(0x0b05, 0x1917),