[PATCH] Add a quirk to ignore the Master volume control on 08bb:2704

Omari Stephens xsdg at xsdg.org
Sat Feb 12 21:36:04 CET 2011


---
 mixer.c      |    6 ++++++
 mixer_maps.c |   19 ++++++++++++++++++-
 2 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/mixer.c b/mixer.c
index 3ed3901..38d5d77 100644
--- a/mixer.c
+++ b/mixer.c
@@ -1192,6 +1192,12 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
 		/* disable non-functional volume control */
 		master_bits &= ~UAC_CONTROL_BIT(UAC_FU_VOLUME);
 		break;
+	case USB_ID(0x08bb, 0x2704):
+		snd_printk(KERN_INFO
+			   "usbmixer: master volume quirk for PCM2704 chip\n");
+		/* disable non-functional volume control */
+		master_bits &= ~UAC_CONTROL_BIT(UAC_FU_VOLUME);
+		break;
 	}
 	if (channels > 0)
 		first_ch_bits = snd_usb_combine_bytes(bmaControls + csize, csize);
diff --git a/mixer_maps.c b/mixer_maps.c
index f1324c4..40edd9b 100644
--- a/mixer_maps.c
+++ b/mixer_maps.c
@@ -208,11 +208,23 @@ static struct usbmix_name_map live24ext_map[] = {
 /* LineX FM Transmitter entry - needed to bypass controls bug */
 static struct usbmix_name_map linex_map[] = {
 	/* 1: IT pcm */
-	/* 2: OT Speaker */ 
+	/* 2: OT Speaker */
 	{ 3, "Master" }, /* FU: master volume - left / right / mute */
 	{ 0 } /* terminator */
 };
 
+/* This DAC (08bb:2704) has a single "Volume" control which isn't actually
+ * connected to anything.  The 08bb:2702 device is based off the LineX map, so
+ * presumably the 2704 one is similar but more broken.
+ */
+static struct usbmix_name_map ti_broken_usb_dac_map[] = {
+	/* 1: IT pcm */
+	/* 2: OT Speaker */
+	{ 3, NULL }, /* Master (not connected to anything) */
+	{ 0 }
+};
+
+
 static struct usbmix_name_map maya44_map[] = {
 	/* 1: IT line */
 	{ 2, "Line Playback" }, /* FU */
@@ -355,6 +367,11 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = {
 		.ignore_ctl_error = 1,
 	},
 	{
+		.id = USB_ID(0x08bb, 0x2704),
+		.map = ti_broken_usb_dac_map,
+		.ignore_ctl_error = 1,
+	},
+	{
 		.id = USB_ID(0x0a92, 0x0091),
 		.map = maya44_map,
 	},
-- 
1.7.2.3


--------------070202010806020703010904--


More information about the Alsa-devel mailing list