diff options
author | Denis Kuplyakov <dener.kup@gmail.com> | 2010-11-24 00:01:09 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-11-24 00:04:12 -0500 |
commit | d94772070acc5a8f312ab4650cbbf5e78ea9dda2 (patch) | |
tree | 6c4a2fb67c8d6efb49f26834f91e612bafd77849 /sound/pci | |
parent | ea49b1669b7b405e0eb0bf877c7b7fb01f8dd19b (diff) |
ALSA: hda - Fix Acer 7730G support
Fixes automatic EAPD configuration on Acer 7730G laptop.
Signed-off-by: Denis Kuplyakov <dener.kup@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 49 |
1 files changed, 41 insertions, 8 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 0ac6aed0c889..8f7530fc7644 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -2014,6 +2014,36 @@ static struct hda_verb alc888_acer_aspire_6530g_verbs[] = { | |||
2014 | }; | 2014 | }; |
2015 | 2015 | ||
2016 | /* | 2016 | /* |
2017 | *ALC888 Acer Aspire 7730G model | ||
2018 | */ | ||
2019 | |||
2020 | static struct hda_verb alc888_acer_aspire_7730G_verbs[] = { | ||
2021 | /* Bias voltage on for external mic port */ | ||
2022 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN | PIN_VREF80}, | ||
2023 | /* Front Mic: set to PIN_IN (empty by default) */ | ||
2024 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | ||
2025 | /* Unselect Front Mic by default in input mixer 3 */ | ||
2026 | {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0xb)}, | ||
2027 | /* Enable unsolicited event for HP jack */ | ||
2028 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, | ||
2029 | /* Enable speaker output */ | ||
2030 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | ||
2031 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
2032 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, | ||
2033 | /* Enable headphone output */ | ||
2034 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT | PIN_HP}, | ||
2035 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
2036 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | ||
2037 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2}, | ||
2038 | /*Enable internal subwoofer */ | ||
2039 | {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | ||
2040 | {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
2041 | {0x17, AC_VERB_SET_CONNECT_SEL, 0x02}, | ||
2042 | {0x17, AC_VERB_SET_EAPD_BTLENABLE, 2}, | ||
2043 | { } | ||
2044 | }; | ||
2045 | |||
2046 | /* | ||
2017 | * ALC889 Acer Aspire 8930G model | 2047 | * ALC889 Acer Aspire 8930G model |
2018 | */ | 2048 | */ |
2019 | 2049 | ||
@@ -2200,6 +2230,16 @@ static void alc888_acer_aspire_6530g_setup(struct hda_codec *codec) | |||
2200 | spec->autocfg.speaker_pins[2] = 0x17; | 2230 | spec->autocfg.speaker_pins[2] = 0x17; |
2201 | } | 2231 | } |
2202 | 2232 | ||
2233 | static void alc888_acer_aspire_7730g_setup(struct hda_codec *codec) | ||
2234 | { | ||
2235 | struct alc_spec *spec = codec->spec; | ||
2236 | |||
2237 | spec->autocfg.hp_pins[0] = 0x15; | ||
2238 | spec->autocfg.speaker_pins[0] = 0x14; | ||
2239 | spec->autocfg.speaker_pins[1] = 0x16; | ||
2240 | spec->autocfg.speaker_pins[2] = 0x17; | ||
2241 | } | ||
2242 | |||
2203 | static void alc889_acer_aspire_8930g_setup(struct hda_codec *codec) | 2243 | static void alc889_acer_aspire_8930g_setup(struct hda_codec *codec) |
2204 | { | 2244 | { |
2205 | struct alc_spec *spec = codec->spec; | 2245 | struct alc_spec *spec = codec->spec; |
@@ -9524,13 +9564,6 @@ static struct hda_verb alc883_acer_eapd_verbs[] = { | |||
9524 | { } | 9564 | { } |
9525 | }; | 9565 | }; |
9526 | 9566 | ||
9527 | static struct hda_verb alc888_acer_aspire_7730G_verbs[] = { | ||
9528 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | ||
9529 | {0x17, AC_VERB_SET_CONNECT_SEL, 0x02}, | ||
9530 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, | ||
9531 | { } /* end */ | ||
9532 | }; | ||
9533 | |||
9534 | static void alc888_6st_dell_setup(struct hda_codec *codec) | 9567 | static void alc888_6st_dell_setup(struct hda_codec *codec) |
9535 | { | 9568 | { |
9536 | struct alc_spec *spec = codec->spec; | 9569 | struct alc_spec *spec = codec->spec; |
@@ -10328,7 +10361,7 @@ static struct alc_config_preset alc882_presets[] = { | |||
10328 | .const_channel_count = 6, | 10361 | .const_channel_count = 6, |
10329 | .input_mux = &alc883_capture_source, | 10362 | .input_mux = &alc883_capture_source, |
10330 | .unsol_event = alc_automute_amp_unsol_event, | 10363 | .unsol_event = alc_automute_amp_unsol_event, |
10331 | .setup = alc888_acer_aspire_6530g_setup, | 10364 | .setup = alc888_acer_aspire_7730g_setup, |
10332 | .init_hook = alc_automute_amp, | 10365 | .init_hook = alc_automute_amp, |
10333 | }, | 10366 | }, |
10334 | [ALC883_MEDION] = { | 10367 | [ALC883_MEDION] = { |