[alsa-devel] Possible fix for snd-hda-intel model=no-jd failing since ~linux-3.9-rc1

Adam Richter adam_richter2004 at yahoo.com
Fri Sep 12 06:30:25 CEST 2014


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,
 


More information about the Alsa-devel mailing list