Commit 84d3dc200fc8b878acf7c1840b238e6a0450e4d0

Authored by Chengu Wang
Committed by Takashi Iwai
1 parent e310bb0646

ALSA: hda: Correct EAPD for Dell Inspiron 1525

The commit 24918b61b55c21e09a3e07cd82e1b3a8154782dc statically changes
the model from dell-bios to dell-3stack to solve the sound decreasing
regression (http://lkml.org/lkml/2008/9/12/203), however it leads to another
problem that the 2nd headphone jack doesn't work
(https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3987). So I think
the commit 249**2dc is just a workaround. I would like to give a true solution
here.

The datasheet for STAC9228 says, GPIO2 is the same pin as VOL DOWN, and
the EAPD pin is GPIO0. This is why the sound decreases if we set EAPD as
GPIO2. This patch changes EAPD to GPIO0 to solve the problem.

Signed-off-by: Chengu Wang <wangchengu@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

Showing 1 changed file with 8 additions and 1 deletions Side-by-side Diff

sound/pci/hda/patch_sigmatel.c
... ... @@ -2266,7 +2266,7 @@
2266 2266 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f3, "Dell Inspiron 1420", STAC_DELL_BIOS),
2267 2267 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0227, "Dell Vostro 1400 ", STAC_DELL_BIOS),
2268 2268 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x022e, "Dell ", STAC_DELL_BIOS),
2269   - SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x022f, "Dell Inspiron 1525", STAC_DELL_3ST),
  2269 + SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x022f, "Dell Inspiron 1525", STAC_DELL_BIOS),
2270 2270 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0242, "Dell ", STAC_DELL_BIOS),
2271 2271 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0243, "Dell ", STAC_DELL_BIOS),
2272 2272 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02ff, "Dell ", STAC_DELL_BIOS),
... ... @@ -5645,6 +5645,13 @@
5645 5645 /* GPIO2 High = Enable EAPD */
5646 5646 spec->eapd_mask = spec->gpio_mask = spec->gpio_dir = 0x04;
5647 5647 spec->gpio_data = 0x04;
  5648 + switch (codec->subsystem_id) {
  5649 + case 0x1028022f:
  5650 + /* correct EAPD to be GPIO0 */
  5651 + spec->eapd_mask = spec->gpio_mask = 0x01;
  5652 + spec->gpio_dir = spec->gpio_data = 0x01;
  5653 + break;
  5654 + };
5648 5655 spec->dmic_nids = stac927x_dmic_nids;
5649 5656 spec->num_dmics = STAC927X_NUM_DMICS;
5650 5657