ALSA: hda - Remove superfluous callbacks from STAC/IDT codecs
Now we can register multiple callbacks to each jack, most of hooks used in STAC/IDT codecs can be removed by enabling the powermap update callback for all relevant pins. Along with this, the call of stac_init_power_map() can be moved back to stac_parse_auto_config() and the own build_controls callback can be removed, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
1a4f69d5aa
commit
aa699c492e
|
@ -510,27 +510,6 @@ static void jack_update_power(struct hda_codec *codec,
|
|||
spec->power_map_bits);
|
||||
}
|
||||
|
||||
static void stac_hp_automute(struct hda_codec *codec,
|
||||
struct hda_jack_callback *jack)
|
||||
{
|
||||
snd_hda_gen_hp_automute(codec, jack);
|
||||
jack_update_power(codec, jack);
|
||||
}
|
||||
|
||||
static void stac_line_automute(struct hda_codec *codec,
|
||||
struct hda_jack_callback *jack)
|
||||
{
|
||||
snd_hda_gen_line_automute(codec, jack);
|
||||
jack_update_power(codec, jack);
|
||||
}
|
||||
|
||||
static void stac_mic_autoswitch(struct hda_codec *codec,
|
||||
struct hda_jack_callback *jack)
|
||||
{
|
||||
snd_hda_gen_mic_autoswitch(codec, jack);
|
||||
jack_update_power(codec, jack);
|
||||
}
|
||||
|
||||
static void stac_vref_event(struct hda_codec *codec,
|
||||
struct hda_jack_callback *event)
|
||||
{
|
||||
|
@ -555,8 +534,6 @@ static void stac_init_power_map(struct hda_codec *codec)
|
|||
hda_nid_t nid = spec->pwr_nids[i];
|
||||
unsigned int def_conf = snd_hda_codec_get_pincfg(codec, nid);
|
||||
def_conf = get_defcfg_connect(def_conf);
|
||||
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)) {
|
||||
|
@ -4206,9 +4183,6 @@ static int stac_parse_auto_config(struct hda_codec *codec)
|
|||
spec->gen.pcm_capture_hook = stac_capture_pcm_hook;
|
||||
|
||||
spec->gen.automute_hook = stac_update_outputs;
|
||||
spec->gen.hp_automute_hook = stac_hp_automute;
|
||||
spec->gen.line_automute_hook = stac_line_automute;
|
||||
spec->gen.mic_autoswitch_hook = stac_mic_autoswitch;
|
||||
|
||||
err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg);
|
||||
if (err < 0)
|
||||
|
@ -4260,16 +4234,8 @@ static int stac_parse_auto_config(struct hda_codec *codec)
|
|||
return err;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -4383,7 +4349,7 @@ static int stac_suspend(struct hda_codec *codec)
|
|||
#endif /* CONFIG_PM */
|
||||
|
||||
static const struct hda_codec_ops stac_patch_ops = {
|
||||
.build_controls = stac_build_controls,
|
||||
.build_controls = snd_hda_gen_build_controls,
|
||||
.build_pcms = snd_hda_gen_build_pcms,
|
||||
.init = stac_init,
|
||||
.free = stac_free,
|
||||
|
|
Loading…
Reference in a new issue