diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-04-07 04:50:46 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-04-07 04:50:46 +0200 |
commit | d855ebec4573e52b93dddf9ac0dbca89203ee0e5 (patch) | |
tree | f99bc2bf84074d96ebc9904c03c0a1a5206bdda8 /sound/pci | |
parent | Merge branch 'topic/asoc' into for-linus (diff) | |
parent | ALSA: hda - Add VREF powerdown sequence for another board (diff) | |
download | linux-d855ebec4573e52b93dddf9ac0dbca89203ee0e5.tar.xz linux-d855ebec4573e52b93dddf9ac0dbca89203ee0e5.zip |
Merge branch 'topic/hda' into for-linus
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_analog.c | 2 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 5bb48ee8b6c6..38ad3f7b040f 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c @@ -3256,7 +3256,7 @@ static const char *ad1884_slave_vols[] = { "Mic Playback Volume", "CD Playback Volume", "Internal Mic Playback Volume", - "Docking Mic Playback Volume" + "Docking Mic Playback Volume", /* "Beep Playback Volume", */ "IEC958 Playback Volume", NULL diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index b34d78b88a85..61996a2f45df 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -4413,6 +4413,24 @@ static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) if (spec->num_pwrs > 0) stac92xx_pin_sense(codec, event->nid); stac92xx_report_jack(codec, event->nid); + + switch (codec->subsystem_id) { + case 0x103c308f: + if (event->nid == 0xb) { + int pin = AC_PINCTL_IN_EN; + + if (get_pin_presence(codec, 0xa) + && get_pin_presence(codec, 0xb)) + pin |= AC_PINCTL_VREF_80; + if (!get_pin_presence(codec, 0xb)) + pin |= AC_PINCTL_VREF_80; + + /* toggle VREF state based on mic + hp pin + * status + */ + stac92xx_auto_set_pinctl(codec, 0x0a, pin); + } + } break; case STAC_VREF_EVENT: data = snd_hda_codec_read(codec, codec->afg, 0, |