aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2010-09-08 09:55:44 -0400
committerTakashi Iwai <tiwai@suse.de>2010-09-08 09:55:44 -0400
commit18675e4283f575594d55ef1239c14ab5b4de53b6 (patch)
treee9964139fdf118e02eb134d8e1711806b1098aa2 /sound
parent033688a5a80f9d56b2e7d56c4cb8188ae1448919 (diff)
ALSA: hda - Add fixup for FSC Celsius H270
Added a fixup table for ALC262 codec containing the entry for FSC Celsius H270. Now both headphone jacks are detected properly as headphones. Reference: Novell bnc637263 https://bugzilla.novell.com/show_bug.cgi?id=637263 Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/patch_realtek.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 26069e397fc9..f11a9ca2c4b2 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -12205,6 +12205,35 @@ static struct hda_verb alc262_toshiba_rx1_unsol_verbs[] = {
12205 {} 12205 {}
12206}; 12206};
12207 12207
12208/*
12209 * Pin config fixes
12210 */
12211enum {
12212 PINFIX_FSC_H270,
12213};
12214
12215static const struct alc_fixup alc262_fixups[] = {
12216 [PINFIX_FSC_H270] = {
12217 .pins = (const struct alc_pincfg[]) {
12218 { 0x14, 0x99130110 }, /* speaker */
12219 { 0x15, 0x0221142f }, /* front HP */
12220 { 0x1b, 0x0121141f }, /* rear HP */
12221 { }
12222 }
12223 },
12224 [PINFIX_PB_M5210] = {
12225 .verbs = (const struct hda_verb[]) {
12226 { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF50 },
12227 {}
12228 }
12229 },
12230};
12231
12232static struct snd_pci_quirk alc262_fixup_tbl[] = {
12233 SND_PCI_QUIRK(0x1734, 0x1147, "FSC Celsius H270", PINFIX_FSC_H270),
12234 {}
12235};
12236
12208 12237
12209#ifdef CONFIG_SND_HDA_POWER_SAVE 12238#ifdef CONFIG_SND_HDA_POWER_SAVE
12210#define alc262_loopbacks alc880_loopbacks 12239#define alc262_loopbacks alc880_loopbacks
@@ -12628,6 +12657,9 @@ static int patch_alc262(struct hda_codec *codec)
12628 board_config = ALC262_AUTO; 12657 board_config = ALC262_AUTO;
12629 } 12658 }
12630 12659
12660 if (board_config == ALC262_AUTO)
12661 alc_pick_fixup(codec, alc262_fixup_tbl, alc262_fixups, 1);
12662
12631 if (board_config == ALC262_AUTO) { 12663 if (board_config == ALC262_AUTO) {
12632 /* automatic parse from the BIOS config */ 12664 /* automatic parse from the BIOS config */
12633 err = alc262_parse_auto_config(codec); 12665 err = alc262_parse_auto_config(codec);
@@ -12696,6 +12728,9 @@ static int patch_alc262(struct hda_codec *codec)
12696 if (!spec->no_analog && has_cdefine_beep(codec)) 12728 if (!spec->no_analog && has_cdefine_beep(codec))
12697 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); 12729 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT);
12698 12730
12731 if (board_config == ALC262_AUTO)
12732 alc_pick_fixup(codec, alc262_fixup_tbl, alc262_fixups, 0);
12733
12699 spec->vmaster_nid = 0x0c; 12734 spec->vmaster_nid = 0x0c;
12700 12735
12701 codec->patch_ops = alc_patch_ops; 12736 codec->patch_ops = alc_patch_ops;