|
@@ -566,8 +566,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);
|
|
@@ -4276,11 +4276,18 @@ 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)
|
|
|
{
|
|
@@ -4392,7 +4399,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,
|