aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2010-08-04 17:53:36 -0400
committerTakashi Iwai <tiwai@suse.de>2010-08-04 17:53:36 -0400
commitfc091769a5aa65c045bfbda149c424ba33d0abbb (patch)
treea82d0d03910e056dd2ca4830623546438888ff9b /sound/pci
parent748cce431eb413e794c8f1d1974b78b47a6174ef (diff)
ALSA: hda - Add pin-fix for HP dc5750
The NID 0x11 on HP dc5750 with ALC260 should be a speaker although BIOS gives it as a line-out. This patch adds a quirk to fix the pin config so that the real line-out is used properly. Reference: bnc#624118 https://bugzilla.novell.com/show_bug.cgi?id=624118 Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_realtek.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index c8070620a4d8..6ac53f7de549 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6792,6 +6792,29 @@ static struct hda_amp_list alc260_loopbacks[] = {
6792#endif 6792#endif
6793 6793
6794/* 6794/*
6795 * Pin config fixes
6796 */
6797enum {
6798 PINFIX_HP_DC5750,
6799};
6800
6801static struct alc_pincfg alc260_hp_dc5750_pinfix[] = {
6802 { 0x11, 0x90130110 }, /* speaker */
6803 { }
6804};
6805
6806static const struct alc_fixup alc260_fixups[] = {
6807 [PINFIX_HP_DC5750] = {
6808 .pins = alc260_hp_dc5750_pinfix
6809 },
6810};
6811
6812static struct snd_pci_quirk alc260_fixup_tbl[] = {
6813 SND_PCI_QUIRK(0x103c, 0x280a, "HP dc5750", PINFIX_HP_DC5750),
6814 {}
6815};
6816
6817/*
6795 * ALC260 configurations 6818 * ALC260 configurations
6796 */ 6819 */
6797static const char *alc260_models[ALC260_MODEL_LAST] = { 6820static const char *alc260_models[ALC260_MODEL_LAST] = {
@@ -6990,6 +7013,9 @@ static int patch_alc260(struct hda_codec *codec)
6990 board_config = ALC260_AUTO; 7013 board_config = ALC260_AUTO;
6991 } 7014 }
6992 7015
7016 if (board_config == ALC260_AUTO)
7017 alc_pick_fixup(codec, alc260_fixup_tbl, alc260_fixups, 1);
7018
6993 if (board_config == ALC260_AUTO) { 7019 if (board_config == ALC260_AUTO) {
6994 /* automatic parse from the BIOS config */ 7020 /* automatic parse from the BIOS config */
6995 err = alc260_parse_auto_config(codec); 7021 err = alc260_parse_auto_config(codec);
@@ -7035,6 +7061,9 @@ static int patch_alc260(struct hda_codec *codec)
7035 set_capture_mixer(codec); 7061 set_capture_mixer(codec);
7036 set_beep_amp(spec, 0x07, 0x05, HDA_INPUT); 7062 set_beep_amp(spec, 0x07, 0x05, HDA_INPUT);
7037 7063
7064 if (board_config == ALC260_AUTO)
7065 alc_pick_fixup(codec, alc260_fixup_tbl, alc260_fixups, 0);
7066
7038 spec->vmaster_nid = 0x08; 7067 spec->vmaster_nid = 0x08;
7039 7068
7040 codec->patch_ops = alc_patch_ops; 7069 codec->patch_ops = alc_patch_ops;