Commit 84d3dc200fc8b878acf7c1840b238e6a0450e4d0
Committed by
Takashi Iwai
1 parent
e310bb0646
Exists in
master
and in
20 other branches
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 |