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

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

ALSA: hda/realtek - Add GPIO data update helper



For updating GPIO bits dynamically, provide a new helper, and use it
from the alc260 automute hook.  This helper will be used by other
places in future, too.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 5579cd6f
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -241,6 +241,20 @@ static void alc_write_gpio_data(struct hda_codec *codec)
			    spec->gpio_data);
}

static void alc_update_gpio_data(struct hda_codec *codec, unsigned int mask,
				 bool on)
{
	struct alc_spec *spec = codec->spec;
	unsigned int oldval = spec->gpio_data;

	if (on)
		spec->gpio_data |= mask;
	else
		spec->gpio_data &= ~mask;
	if (oldval != spec->gpio_data)
		alc_write_gpio_data(codec);
}

static void alc_write_gpio(struct hda_codec *codec)
{
	struct alc_spec *spec = codec->spec;
@@ -1577,8 +1591,8 @@ enum {
static void alc260_gpio1_automute(struct hda_codec *codec)
{
	struct alc_spec *spec = codec->spec;
	snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_DATA,
			    spec->gen.hp_jack_present);

	alc_update_gpio_data(codec, 0x01, spec->gen.hp_jack_present);
}

static void alc260_fixup_gpio1_toggle(struct hda_codec *codec,