[alsa-devel] [PATCH] hda: Add STAC_DELL_M4_3 quirk

Matthew Ranostay mranostay at embeddedalley.com
Fri Nov 21 02:31:16 CET 2008


Takashi Iwai wrote:
> At Wed, 19 Nov 2008 21:48:51 -0500,
> Matthew Ranostay wrote:
>> Add PCI quirk STAC_DELL_M4_3 for 92hd71bxx based laptops.
> 
> Which laptops, more exactly?  Recently I received bug reports about
> Dell Studio laptops, and wondering whether it's for such models.
> 
> 
>> @@ -4650,14 +4661,20 @@ again:
>>
>>  	switch (spec->board_config) {
>>  	case STAC_HP_M4:
>> -		spec->num_dmics = 0;
>> -		spec->num_smuxes = 0;
>> -		spec->num_dmuxes = 0;
>> -
>>  		/* enable internal microphone */
>>  		stac92xx_set_config_reg(codec, 0x0e, 0x01813040);
>>  		stac92xx_auto_set_pinctl(codec, 0x0e,
>>  			AC_PINCTL_IN_EN | AC_PINCTL_VREF_80);
> 
> Please add a comment about fall-through here.
> 
> Also, update Documentation/*/ALSA-Configuration.txt as well.
> 
> 
> thanks,
> 
> Takashi
> 

Add PCI quirk STAC_DELL_M4_3 for 92hd71bxx based laptops and desktops.

Signed-off-by: Matthew Ranostay <mranostay at embeddedalley.com>
---

diff --git a/Documentation/ALSA-Configuration.txt
b/Documentation/ALSA-Configuration.txt
index 3ab5fb1..8b99a22 100644
--- a/Documentation/ALSA-Configuration.txt
+++ b/Documentation/ALSA-Configuration.txt
@@ -1076,6 +1076,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix.
This was removed.
 	  ref		Reference board
 	  dell-m4-1	Dell desktops
 	  dell-m4-2	Dell desktops
+	  dell-m4-3	Dell desktops

 	STAC92HD73*
 	  ref		Reference board
diff --git a/pci/hda/patch_sigmatel.c b/pci/hda/patch_sigmatel.c
index e0298df..f1a0f13 100644
--- a/pci/hda/patch_sigmatel.c
+++ b/pci/hda/patch_sigmatel.c
@@ -83,6 +83,7 @@ enum {
 	STAC_92HD71BXX_REF,
 	STAC_DELL_M4_1,
 	STAC_DELL_M4_2,
+	STAC_DELL_M4_3,
 	STAC_HP_M4,
 	STAC_92HD71BXX_MODELS
 };
@@ -1689,10 +1690,17 @@ static unsigned int dell_m4_2_pin_configs[11] = {
 	0x40f000f0, 0x044413b0, 0x044413b0,
 };

+static unsigned int dell_m4_3_pin_configs[11] = {
+	0x0421101f, 0x04a11221, 0x90a70330, 0x90170110,
+	0x40f000f0, 0x40f000f0, 0x40f000f0, 0x90a000f0,
+	0x40f000f0, 0x044413b0, 0x044413b0,
+};
+
 static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = {
 	[STAC_92HD71BXX_REF] = ref92hd71bxx_pin_configs,
 	[STAC_DELL_M4_1]	= dell_m4_1_pin_configs,
 	[STAC_DELL_M4_2]	= dell_m4_2_pin_configs,
+	[STAC_DELL_M4_3]	= dell_m4_3_pin_configs,
 	[STAC_HP_M4]		= NULL,
 };

@@ -1700,6 +1708,7 @@ static const char
*stac92hd71bxx_models[STAC_92HD71BXX_MODELS] = {
 	[STAC_92HD71BXX_REF] = "ref",
 	[STAC_DELL_M4_1] = "dell-m4-1",
 	[STAC_DELL_M4_2] = "dell-m4-2",
+	[STAC_DELL_M4_3] = "dell-m4-3",
 	[STAC_HP_M4] = "hp-m4",
 };

@@ -1731,6 +1740,8 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
 				"unknown Dell", STAC_DELL_M4_2),
 	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0264,
 				"unknown Dell", STAC_DELL_M4_2),
+	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02aa,
+				"unknown Dell", STAC_DELL_M4_3),
 	{} /* terminator */
 };

@@ -4650,14 +4661,21 @@ again:

 	switch (spec->board_config) {
 	case STAC_HP_M4:
-		spec->num_dmics = 0;
-		spec->num_smuxes = 0;
-		spec->num_dmuxes = 0;
-
 		/* enable internal microphone */
 		stac92xx_set_config_reg(codec, 0x0e, 0x01813040);
 		stac92xx_auto_set_pinctl(codec, 0x0e,
 			AC_PINCTL_IN_EN | AC_PINCTL_VREF_80);
+		/* fallthru */
+	case STAC_DELL_M4_2:
+		spec->num_dmics = 0;
+		spec->num_smuxes = 0;
+		spec->num_dmuxes = 0;
+		break;
+	case STAC_DELL_M4_1:
+	case STAC_DELL_M4_3:
+		spec->num_dmics = 1;
+		spec->num_smuxes = 0;
+		spec->num_dmuxes = 0;
 		break;
 	default:
 		spec->num_dmics = STAC92HD71BXX_NUM_DMICS;


More information about the Alsa-devel mailing list