Re: Headphone en AAO
2009/12/10 Ricardo Albarracin B. <ralbab@gmail.com>:
> Estimados listeros:
>
> Tengo instalado en un Acer Aspire One AAO-D250, un Lenny y tengo un problema
> que no he podido resolver, que es al conectar los audifonos no me corta los
> parlantes y suenan ambos al reproducir sonido. La tarjeta de sonido es HDA
> Intel, pero en "Control de Volumen", no sale Conmutadores, por lo que no puedo
> habilitar "Headphone Jack Sense".... Alguna idea de como resolverlo?
>
> Saludos cordiales y de antemano gracias.
La versión de ALSA en Lenny aún no tiene el parche para la aspire one,
lo que tendrías que hacer es meterle el parche y recompilarlo, o
instalar la version 1.0.18 que añade el soporte [0].
Adjunto el parche que usé (ya que no me acuerdo de donde lo bajé XD)
Saludos
[0] http://www.alsa-project.org/main/index.php/Changes_v1.0.17_v1.0.18#HDA_Codec_driver
--
Linux Registered User # 386081
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.
112a113
> ALC268_ACER_ASPIRE_ONE,
10070a10072,10079
> static struct hda_verb alc268_acer_lc_capture_source = {
> .num_items = 2,
> .items {
> { "i-Mic", 0x6 },
> { "E-Mic", 0x0 },
> },
> };
>
10122a10132,10146
> static struct snd_kcontrol_new alc268_acer_aspire_one_mixer[] = {
> /* output mixer control */
> HDA_BIND_VOL("Master Playback Volume", &alc268_acer_bind_master_vol),
> {
> .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
> .name = "Master Playback Switch",
> .info = snd_hda_mixer_amp_switch_info,
> .get = snd_hda_mixer_amp_switch_get,
> .put = alc268_acer_master_sw_put,
> .private_value = HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT),
> },
> HDA_CODEC_VOLUME("Mic Boost Capture Volume", 0x18, 0, HDA_INPUT),
> {}
> };
>
10139a10164,10173
> static struct hda_verb alc268_acer_aspire_one_verbs[] = {
> {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
> {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
> {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN},
> {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_MIC_EVENT},
> {0x23, AC_VERB_SET_CONNECT_SEL, 0x06},
> {0x23, AC_VERB_SET_AMP_GAIN_MUTE, 0xa017},
> {}
> };
>
10173a10208,10246
> /* toggle speaker-output according to the hp-jack state */
> static void alc268_aspire_one_speaker_automute(struct hda_codec *codec)
> {
> unsigned int present;
> unsigned char bits;
>
> present = snd_hda_codec_read(codec, 0x15, 0,
> AC_VERB_GET_PIN_SENSE, 0) & 0x80000000;
> bits = present ? AMP_IN_MUTE(0) : 0;
> snd_hda_codec_amp_stereo(codec, 0x0f, HDA_INPUT, 0,
> AMP_IN_MUTE(0), bits);
> snd_hda_codec_amp_stereo(codec, 0x0f, HDA_INPUT, 1,
> AMP_IN_MUTE(0), bits);
> }
>
> static void alc268_acer_mic_automute(struct hda_codec *codec)
> {
> unsigned int present;
> present = snd_hda_codec_read(codec, 0x18, 0,
> AC_VERB_GET_PIN_SENSE, 0) & 0x80000000;
> snd_hda_codec_write(codec, 0x23, 0, AC_VERB_SET_CONNECT_SEL,
> present ? 0x0 : 0x6);
> }
>
> static void alc268_acer_lc_unsol_event(struct hda_codec *codec,
> unsigned int res)
> {
> if ((res >> 26) == ALC880_HP_EVENT)
> alc268_aspire_one_speaker_automute(codec);
> if ((res >> 26) == ALC880_MIC_EVENT)
> alc268_acer_mic_automute(codec);
> }
>
> static void alc268_acer_lc_init_hook(struct hda_codec *codec)
> {
> alc268_aspire_one_speaker_automute(codec);
> alc268_acer_mic_automute(codec);
> }
>
10700a10774
> [ALC268_ACER_ASPIRE_ONE] = "acer-aspire",
10714a10789
> SND_PCI_QUIRK(0x1025, 0x015b, "Acer Aspire One", ALC268_ACER_ASPIRE_ONE),
10791a10867,10882
> [ALC268_ACER_ASPIRE_ONE] = {
> .mixers = { alc268_acer_aspire_one_mixer, alc268_capture_alt_mixer },
> .init_verbs = { alc268_base_init_verbs, alc268_eapd_verbs,
> alc268_acer_aspire_one_verbs },
> .num_dacs = ARRAY_SIZE(alc268_dac_nids),
> .dac_nids = alc268_dac_nids,
> .num_adc_nids = ARRAY_SIZE(alc268_adc_nids_alt),
> .adc_nids = alc268_adc_nids_alt,
> .capsrc_nids = alc268_capsrc_nids,
> .hp_nid = 0x03,
> .num_channel_mode = ARRAY_SIZE(alc268_modes),
> .channel_mode = alc268_modes,
> .input_mux = &alc268_acer_lc_capture_source,
> .unsol_event = alc268_acer_lc_unsol_event,
> .init_hook = alc268_acer_lc_init_hook,
> },
Reply to: