Hi, Takashi.
I confirm that your patch, quoted below, eliminated the symptom.
Please feel free to ask me to test other patches related to this problem.
Also, by the way, it appears that linux-3.17-rc4's Intel "high defintiion audio" driver, regardless of whether this patch is applied, no longer shows Linux input subsystem devices for analog audio jack sense, although it does provide such a device for HDMI jack sense. If that's a bug, it's completely separate, but I mention it here in case it's relevant to integrating a fix to this issue.
Thanks to you and David for your prompt and careful attention this bug once I brought it to this mailing list.
Adam Richter
At Thu, 11 Sep 2014 12:07:43 +0200, Takashi Iwai wrote:
-- diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index f26ec04a29b5..526b5d39a2cb 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -565,8 +565,8 @@ static void stac_init_power_map(struct hda_codec *codec) if (snd_hda_jack_tbl_get(codec, nid)) continue; if (def_conf == AC_JACK_PORT_COMPLEX && - !(spec->vref_mute_led_nid == nid || - is_jack_detectable(codec, nid))) { + spec->vref_mute_led_nid != nid && + is_jack_detectable(codec, nid)) { snd_hda_jack_detect_enable_callback(codec, nid, STAC_PWR_EVENT, jack_update_power); @@ -4272,11 +4272,17 @@ static int
stac_parse_auto_config(struct hda_codec *codec)
return err; } - stac_init_power_map(codec);
return 0; } +static int stac_build_controls(struct hda_codec *codec) +{ + int err =
snd_hda_gen_build_controls(codec);
+ if (err < 0) + return err; + stac_init_power_map(codec); + return 0; +} static int stac_init(struct hda_codec *codec) { @@ -4388,7 +4394,7 @@ static int stac_suspend(struct hda_codec *codec) #endif /* CONFIG_PM */ static const struct hda_codec_ops stac_patch_ops = { - .build_controls = snd_hda_gen_build_controls, + .build_controls = stac_build_controls, .build_pcms = snd_hda_gen_build_pcms, .init = stac_init, .free = stac_free,