]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.drivers/alsa-hda-stac-dell-m4-3-quirk
Reenabled linux-xen, added patches for Xen Kernel Version 2.6.27.31,
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.drivers / alsa-hda-stac-dell-m4-3-quirk
diff --git a/src/patches/suse-2.6.27.31/patches.drivers/alsa-hda-stac-dell-m4-3-quirk b/src/patches/suse-2.6.27.31/patches.drivers/alsa-hda-stac-dell-m4-3-quirk
new file mode 100644 (file)
index 0000000..228d21e
--- /dev/null
@@ -0,0 +1,98 @@
+From: Matthew Ranostay <mranostay@embeddedalley.com>
+Subject: ALSA: hda: Add STAC_DELL_M4_3 quirk
+Patch-mainline: 
+References: bnc#446025
+
+Added STAC_DELL_M4_3 quirk for Dell systems, also reorganized the
+board config switch to assign number of digital muxes, microphones,
+and SPDIF muxes via the PCI quirk defined.
+
+Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ Documentation/sound/alsa/ALSA-Configuration.txt |    1 
+ sound/pci/hda/patch_sigmatel.c                  |   26 ++++++++++++++++++++----
+ 2 files changed, 23 insertions(+), 4 deletions(-)
+
+--- a/Documentation/sound/alsa/ALSA-Configuration.txt
++++ b/Documentation/sound/alsa/ALSA-Configuration.txt
+@@ -1076,6 +1076,7 @@ Prior to version 0.9.0rc4 options had a 
+         ref           Reference board
+         dell-m4-1     Dell desktops
+         dell-m4-2     Dell desktops
++        dell-m4-3     Dell desktops
+       STAC92HD73*
+         ref           Reference board
+--- a/sound/pci/hda/patch_sigmatel.c
++++ b/sound/pci/hda/patch_sigmatel.c
+@@ -84,6 +84,7 @@ enum {
+       STAC_92HD71BXX_REF,
+       STAC_DELL_M4_1,
+       STAC_DELL_M4_2,
++      STAC_DELL_M4_3,
+       STAC_HP_M4,
+       STAC_92HD71BXX_MODELS
+ };
+@@ -1675,10 +1676,17 @@ static unsigned int dell_m4_2_pin_config
+       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,
+ };
+@@ -1686,6 +1694,7 @@ static const char *stac92hd71bxx_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",
+ };
+@@ -1721,6 +1730,8 @@ static struct snd_pci_quirk stac92hd71bx
+                               "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 */
+ };
+@@ -4575,14 +4586,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;