diff mbox series

ALSA: usb-audio: fix Corsair Virtuoso mixer label collision

Message ID 20191227094053.GA12167@nova.chris.boyle.name (mailing list archive)
State New, archived
Headers show
Series ALSA: usb-audio: fix Corsair Virtuoso mixer label collision | expand

Commit Message

Chris Boyle Dec. 27, 2019, 9:40 a.m. UTC
The Corsair Virtuoso RGB Wireless is a USB headset with a mic and a
sidetone feature. Label its mixer appropriately instead of all
"Headset", so that applications such as Pulseaudio don't just move
the sidetone control when they intend the main Headset control.

Signed-off-by: Chris Boyle <chris@boyle.name>
---
 sound/usb/mixer_maps.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

Comments

Takashi Iwai Dec. 28, 2019, 1:18 p.m. UTC | #1
On Fri, 27 Dec 2019 10:40:53 +0100,
Chris Boyle wrote:
> 
> The Corsair Virtuoso RGB Wireless is a USB headset with a mic and a
> sidetone feature. Label its mixer appropriately instead of all
> "Headset", so that applications such as Pulseaudio don't just move
> the sidetone control when they intend the main Headset control.
> 
> Signed-off-by: Chris Boyle <chris@boyle.name>

Applied now.  Thanks.


Takashi
diff mbox series

Patch

diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c
index 73baf398c84a..d094934ae6c5 100644
--- a/sound/usb/mixer_maps.c
+++ b/sound/usb/mixer_maps.c
@@ -349,6 +349,16 @@  static const struct usbmix_name_map dell_alc4020_map[] = {
 	{ 0 }
 };
 
+/*
+ * Corsair Virtuoso calls everything "Headset" without this, leading to
+ * applications moving the sidetone control instead of the main one.
+ */
+static const struct usbmix_name_map corsair_virtuoso_map[] = {
+	{ 3, "Mic Capture" },
+	{ 6, "Sidetone Playback" },
+	{ 0 }
+};
+
 /*
  * Control map entries
  */
@@ -468,6 +478,16 @@  static struct usbmix_ctl_map usbmix_ctl_maps[] = {
 		.id = USB_ID(0x05a7, 0x1020),
 		.map = bose_companion5_map,
 	},
+	{
+		/* Corsair Virtuoso (wired mode) */
+		.id = USB_ID(0x1b1c, 0x0a41),
+		.map = corsair_virtuoso_map,
+	},
+	{
+		/* Corsair Virtuoso (wireless mode) */
+		.id = USB_ID(0x1b1c, 0x0a42),
+		.map = corsair_virtuoso_map,
+	},
 	{ 0 } /* terminator */
 };