ALSA: usb - Fix mixer map for Hercules Gamesurround Muse Pocket LT
authorAlexey Fisher <bug-track@fisher-privat.net>
Tue, 1 Dec 2009 12:40:53 +0000 (13:40 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 1 Dec 2009 15:00:08 +0000 (16:00 +0100)
Muse Pocket use brocken mixer names, so alsamixer and PA can't use it correctly
This patch add quirk to overwirte default mixers.

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/usbmixer_maps.c

index 3e5d66cf1f5a3ef8212afe5fca7128d01fbcfff6..77c35885e21cf40653076729f8b1d327b28af52a 100644 (file)
@@ -277,6 +277,22 @@ static struct usbmix_name_map scratch_live_map[] = {
        { 0 } /* terminator */
 };
 
+/* "Gamesurround Muse Pocket LT" looks same like "Sound Blaster MP3+"
+ *  most importand difference is SU[8], it should be set to "Capture Source"
+ *  to make alsamixer and PA working properly.
+ *  FIXME: or mp3plus_map should use "Capture Source" too,
+ *  so this maps can be merget
+ */
+static struct usbmix_name_map hercules_usb51_map[] = {
+       { 8, "Capture Source" },        /* SU, default "PCM Capture Source" */
+       { 9, "Master Playback" },       /* FU, default "Speaker Playback" */
+       { 10, "Mic Boost", 7 },         /* FU, default "Auto Gain Input" */
+       { 11, "Line Capture" },         /* FU, default "PCM Capture" */
+       { 13, "Mic Bypass Playback" },  /* FU, default "Mic Playback" */
+       { 14, "Line Bypass Playback" }, /* FU, default "Line Playback" */
+       { 0 }                           /* terminator */
+};
+
 /*
  * Control map entries
  */
@@ -315,6 +331,13 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = {
                .id = USB_ID(0x06f8, 0xd002),
                .ignore_ctl_error = 1,
        },
+       {
+               /* Hercules Gamesurround Muse Pocket LT
+                * (USB 5.1 Channel Audio Adapter)
+                */
+               .id = USB_ID(0x06f8, 0xc000),
+               .map = hercules_usb51_map,
+       },
        {
                .id = USB_ID(0x08bb, 0x2702),
                .map = linex_map,