Good news, anyway. Attached alsa-info.txt with model=b1900. And I followed to use only data for automute while set_gpio inside init_verb; which works. Below is the code (attached diff): /* 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_DATA, 1); } else { snd_hda_codec_write_cache(codec, 0x01, 0, AC_VERB_SET_GPIO_DATA, 0); } } static const struct hda_verb alc260_b1900_verbs[] = { {0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, {0x0b, AC_VERB_SET_CONNECT_SEL, 0x00}, {0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, {0x0f, AC_VERB_SET_EAPD_BTLENABLE, 0x02}, {0x1a, AC_VERB_SET_COEF_INDEX, 0x07}, {0x1a, AC_VERB_SET_PROC_COEF, 0x3040}, {0x01, AC_VERB_SET_GPIO_MASK, 0x01}, {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x01}, {0x0f, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, {} }; On 2012年02月16日 17:42, Takashi Iwai wrote: > At Thu, 16 Feb 2012 10:41:32 +0100, > Takashi Iwai wrote: >> At Thu, 16 Feb 2012 17:38:33 +0800, >> joey.jiaojg wrote: >>> YES, you are right on the assumption. I tried again many times of >>> SET_GPIO_DATA between 0/1, speaker/headphone switches. >>> So is possible to merge into next ALSA release? >> Not ready for "merge". As mentioned, your patch can't be applied to >> the latest tree. >> >> I'll work on the better implementation of a quirk for the auto-parser >> later. > Oh, for that, could you give alsa-info.sh output? > Attach the output file (don't paste) obtained with --no-upload > option. > > > thanks, > > Takashi