Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd25a97a authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Add spec->vmaster_mute_enum flag to generic parser



Add a flag to indicate whether the vmaster mute hook enum is exposed
or not.  Conexant codecs may want not to expose the control depending
on the model.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 406b285d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2966,7 +2966,8 @@ int snd_hda_gen_build_controls(struct hda_codec *codec)
		if (err < 0)
			return err;
		if (spec->vmaster_mute.hook)
			snd_hda_add_vmaster_hook(codec, &spec->vmaster_mute, true);
			snd_hda_add_vmaster_hook(codec, &spec->vmaster_mute,
						 spec->vmaster_mute_enum);
	}

	free_kctls(spec); /* no longer needed */
+1 −0
Original line number Diff line number Diff line
@@ -151,6 +151,7 @@ struct hda_gen_spec {
	unsigned int multi_cap_vol:1; /* allow multiple capture xxx volumes */
	unsigned int inv_dmic_split:1; /* inverted dmic w/a for conexant */
	unsigned int own_eapd_ctl:1; /* set EAPD by own function */
	unsigned int vmaster_mute_enum:1; /* add vmaster mute mode enum */

	/* for virtual master */
	hda_nid_t vmaster_nid;
+6 −2
Original line number Diff line number Diff line
@@ -2678,8 +2678,10 @@ static void alc269_fixup_mic1_mute(struct hda_codec *codec,
				   const struct alc_fixup *fix, int action)
{
	struct alc_spec *spec = codec->spec;
	if (action == ALC_FIXUP_ACT_PROBE)
	if (action == ALC_FIXUP_ACT_PROBE) {
		spec->gen.vmaster_mute.hook = alc269_fixup_mic1_mute_hook;
		spec->gen.vmaster_mute_enum = 1;
	}
}

/* update mute-LED according to the speaker mute state via mic2 VREF pin */
@@ -2694,8 +2696,10 @@ static void alc269_fixup_mic2_mute(struct hda_codec *codec,
				   const struct alc_fixup *fix, int action)
{
	struct alc_spec *spec = codec->spec;
	if (action == ALC_FIXUP_ACT_PROBE)
	if (action == ALC_FIXUP_ACT_PROBE) {
		spec->gen.vmaster_mute.hook = alc269_fixup_mic2_mute_hook;
		spec->gen.vmaster_mute_enum = 1;
	}
}

static void alc271_hp_gate_mic_jack(struct hda_codec *codec,