aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/pci/hda/patch_sigmatel.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 23a698715e7f..fe2ba764d344 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -4166,7 +4166,10 @@ static int stac92xx_init(struct hda_codec *codec)
4166 stac92xx_auto_set_pinctl(codec, spec->autocfg.line_out_pins[0], 4166 stac92xx_auto_set_pinctl(codec, spec->autocfg.line_out_pins[0],
4167 AC_PINCTL_OUT_EN); 4167 AC_PINCTL_OUT_EN);
4168 /* fake event to set up pins */ 4168 /* fake event to set up pins */
4169 stac_issue_unsol_event(codec, spec->autocfg.hp_pins[0]); 4169 if (cfg->hp_pins[0])
4170 stac_issue_unsol_event(codec, cfg->hp_pins[0]);
4171 else if (cfg->line_out_pins[0])
4172 stac_issue_unsol_event(codec, cfg->line_out_pins[0]);
4170 } else { 4173 } else {
4171 stac92xx_auto_init_multi_out(codec); 4174 stac92xx_auto_init_multi_out(codec);
4172 stac92xx_auto_init_hp_out(codec); 4175 stac92xx_auto_init_hp_out(codec);
@@ -4688,8 +4691,13 @@ static int stac92xx_resume(struct hda_codec *codec)
4688 snd_hda_codec_resume_amp(codec); 4691 snd_hda_codec_resume_amp(codec);
4689 snd_hda_codec_resume_cache(codec); 4692 snd_hda_codec_resume_cache(codec);
4690 /* fake event to set up pins again to override cached values */ 4693 /* fake event to set up pins again to override cached values */
4691 if (spec->hp_detect) 4694 if (spec->hp_detect) {
4692 stac_issue_unsol_event(codec, spec->autocfg.hp_pins[0]); 4695 if (spec->autocfg.hp_pins[0])
4696 stac_issue_unsol_event(codec, spec->autocfg.hp_pins[0]);
4697 else if (spec->autocfg.line_out_pins[0])
4698 stac_issue_unsol_event(codec,
4699 spec->autocfg.line_out_pins[0]);
4700 }
4693 return 0; 4701 return 0;
4694} 4702}
4695 4703