+++ /dev/null
-From: Takashi Iwai <tiwai@suse.de>
-Subject: ALSA: hda - Check model for Dell 92HD73xx laptops
-Patch-mainline:
-References: bnc#446025
-
-Check the model type instead of PCI SSID for detection of the mic types
-on Dell laptops with IDT 92HD73xx codecs. In this way, a new laptop
-can be tested via model module option.
-
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-
----
- Documentation/sound/alsa/ALSA-Configuration.txt | 4 +-
- sound/pci/hda/patch_sigmatel.c | 47 +++++++++++++-----------
- 2 files changed, 29 insertions(+), 22 deletions(-)
-
---- a/Documentation/sound/alsa/ALSA-Configuration.txt
-+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
-@@ -1080,7 +1080,9 @@ Prior to version 0.9.0rc4 options had a
-
- STAC92HD73*
- ref Reference board
-- dell-m6 Dell desktops
-+ dell-m6-amic Dell desktops/laptops with analog mics
-+ dell-m6-dmic Dell desktops/laptops with digital mics
-+ dell-m6 Dell desktops/laptops with both type of mics
-
- STAC9872
- vaio Setup for VAIO FE550G/SZ110
---- a/sound/pci/hda/patch_sigmatel.c
-+++ b/sound/pci/hda/patch_sigmatel.c
-@@ -70,7 +70,9 @@ enum {
-
- enum {
- STAC_92HD73XX_REF,
-- STAC_DELL_M6,
-+ STAC_DELL_M6_AMIC,
-+ STAC_DELL_M6_DMIC,
-+ STAC_DELL_M6_BOTH,
- STAC_DELL_EQ,
- STAC_92HD73XX_MODELS
- };
-@@ -1604,13 +1606,17 @@ static unsigned int dell_m6_pin_configs[
-
- static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
- [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs,
-- [STAC_DELL_M6] = dell_m6_pin_configs,
-+ [STAC_DELL_M6_AMIC] = dell_m6_pin_configs,
-+ [STAC_DELL_M6_DMIC] = dell_m6_pin_configs,
-+ [STAC_DELL_M6_BOTH] = dell_m6_pin_configs,
- [STAC_DELL_EQ] = dell_m6_pin_configs,
- };
-
- static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
- [STAC_92HD73XX_REF] = "ref",
-- [STAC_DELL_M6] = "dell-m6",
-+ [STAC_DELL_M6_AMIC] = "dell-m6-amic",
-+ [STAC_DELL_M6_DMIC] = "dell-m6-dmic",
-+ [STAC_DELL_M6_BOTH] = "dell-m6",
- [STAC_DELL_EQ] = "dell-eq",
- };
-
-@@ -1619,21 +1625,23 @@ static struct snd_pci_quirk stac92hd73xx
- SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
- "DFI LanParty", STAC_92HD73XX_REF),
- SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254,
-- "Dell Studio 1535", STAC_DELL_M6),
-+ "Dell Studio 1535", STAC_DELL_M6_DMIC),
- SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255,
-- "unknown Dell", STAC_DELL_M6),
-+ "unknown Dell", STAC_DELL_M6_DMIC),
- SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256,
-- "unknown Dell", STAC_DELL_M6),
-+ "unknown Dell", STAC_DELL_M6_BOTH),
- SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257,
-- "unknown Dell", STAC_DELL_M6),
-+ "unknown Dell", STAC_DELL_M6_BOTH),
- SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e,
-- "unknown Dell", STAC_DELL_M6),
-+ "unknown Dell", STAC_DELL_M6_AMIC),
- SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f,
-- "unknown Dell", STAC_DELL_M6),
-+ "unknown Dell", STAC_DELL_M6_AMIC),
- SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271,
-- "unknown Dell", STAC_DELL_M6),
-+ "unknown Dell", STAC_DELL_M6_DMIC),
-+ SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0272,
-+ "unknown Dell", STAC_DELL_M6_DMIC),
- SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f,
-- "Dell Studio 15", STAC_DELL_M6),
-+ "Dell Studio 1537", STAC_DELL_M6_DMIC),
- {} /* terminator */
- };
-
-@@ -4284,7 +4292,9 @@ again:
- case STAC_DELL_EQ:
- spec->init = dell_eq_core_init;
- /* fallthru */
-- case STAC_DELL_M6:
-+ case STAC_DELL_M6_AMIC:
-+ case STAC_DELL_M6_DMIC:
-+ case STAC_DELL_M6_BOTH:
- if (!spec->init)
- spec->init = dell_m6_core_init;
- spec->num_smuxes = 0;
-@@ -4292,23 +4302,18 @@ again:
- spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP];
- spec->eapd_switch = 0;
- spec->num_amps = 1;
-- switch (codec->subsystem_id) {
-- case 0x1028025e: /* Analog Mics */
-- case 0x1028025f:
-+ switch (spec->board_config) {
-+ case STAC_DELL_M6_AMIC: /* Analog Mics */
- stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
- spec->num_dmics = 0;
- spec->private_dimux.num_items = 1;
- break;
-- case 0x10280271: /* Digital Mics */
-- case 0x10280272:
-- case 0x10280254:
-- case 0x10280255:
-+ case STAC_DELL_M6_DMIC: /* Digital Mics */
- stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
- spec->num_dmics = 1;
- spec->private_dimux.num_items = 2;
- break;
-- case 0x10280256: /* Both */
-- case 0x10280057:
-+ case STAC_DELL_M6_BOTH: /* Both */
- stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
- stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
- spec->num_dmics = 1;