[alsa-devel] Bug report - patch_realtek.c - Laptop HP COMPAQ B1900 Series
Takashi Iwai
tiwai at suse.de
Thu Feb 16 10:36:33 CET 2012
At Thu, 16 Feb 2012 11:41:10 +0800,
joey.jiaojg wrote:
>
> And now this code works:
> /* toggle speaker-output according to the hp-jack state */
> static void alc260_b1900_automute(struct hda_codec *codec)
> {
> unsigned int present;
>
> present = snd_hda_jack_detect(codec, 0x0f);
> if (present) {
> snd_hda_codec_write_cache(codec, 0x01, 0,
> AC_VERB_SET_GPIO_MASK, 0);
> snd_hda_codec_write_cache(codec, 0x01, 0,
> AC_VERB_SET_GPIO_DIRECTION,
> 0);
> snd_hda_codec_write_cache(codec, 0x01, 0,
> AC_VERB_SET_GPIO_DATA,
> 1);
> } else {
> snd_hda_codec_write_cache(codec, 0x01, 0,
> AC_VERB_SET_GPIO_MASK, 1);
> snd_hda_codec_write_cache(codec, 0x01, 0,
> AC_VERB_SET_GPIO_DIRECTION,
> 1);
> snd_hda_codec_write_cache(codec, 0x01, 0,
> AC_VERB_SET_GPIO_DATA,
> 0);
> }
> }
The GPIO_MASK and GPIO_DIRECTION need to be set only once in the init
verbs, both to 1. Then you just need to flip GPIO_DATA between 0 and
1 in the unsol event handler.
Takashi
More information about the Alsa-devel
mailing list