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

Commit a4e3c5fa authored by Nicolas Boichat's avatar Nicolas Boichat Committed by Mark Brown
Browse files

ASoC: rt5645: Simplify rt5645_enable_push_button_irq



LDO2/Mic Det Power pins are already enabled/disabled in rt5645_jack_detect
(the jack out code path previously did not disable those if button function
is enabled: modify it to make it so).

Signed-off-by: default avatarNicolas Boichat <drinkcat@chromium.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent b14c9174
Loading
Loading
Loading
Loading
+12 −21
Original line number Diff line number Diff line
@@ -2766,13 +2766,9 @@ static void rt5645_enable_push_button_irq(struct snd_soc_codec *codec,
	struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec);

	if (enable) {
		snd_soc_dapm_mutex_lock(dapm);
		snd_soc_dapm_force_enable_pin_unlocked(dapm, "ADC L power");
		snd_soc_dapm_force_enable_pin_unlocked(dapm, "ADC R power");
		snd_soc_dapm_force_enable_pin_unlocked(dapm, "LDO2");
		snd_soc_dapm_force_enable_pin_unlocked(dapm, "Mic Det Power");
		snd_soc_dapm_sync_unlocked(dapm);
		snd_soc_dapm_mutex_unlock(dapm);
		snd_soc_dapm_force_enable_pin(dapm, "ADC L power");
		snd_soc_dapm_force_enable_pin(dapm, "ADC R power");
		snd_soc_dapm_sync(dapm);

		snd_soc_update_bits(codec,
					RT5645_INT_IRQ_ST, 0x8, 0x8);
@@ -2785,14 +2781,9 @@ static void rt5645_enable_push_button_irq(struct snd_soc_codec *codec,
		snd_soc_update_bits(codec, RT5650_4BTN_IL_CMD2, 0x8000, 0x0);
		snd_soc_update_bits(codec, RT5645_INT_IRQ_ST, 0x8, 0x0);

		snd_soc_dapm_mutex_lock(dapm);
		snd_soc_dapm_disable_pin_unlocked(dapm, "ADC L power");
		snd_soc_dapm_disable_pin_unlocked(dapm, "ADC R power");
		if (rt5645->pdata.jd_mode == 0)
			snd_soc_dapm_disable_pin_unlocked(dapm, "LDO2");
		snd_soc_dapm_disable_pin_unlocked(dapm, "Mic Det Power");
		snd_soc_dapm_sync_unlocked(dapm);
		snd_soc_dapm_mutex_unlock(dapm);
		snd_soc_dapm_disable_pin(dapm, "ADC L power");
		snd_soc_dapm_disable_pin(dapm, "ADC R power");
		snd_soc_dapm_sync(dapm);
	}
}

@@ -2847,15 +2838,15 @@ static int rt5645_jack_detect(struct snd_soc_codec *codec, int jack_insert)

	} else { /* jack out */
		rt5645->jack_type = 0;

		if (rt5645->en_button_func)
			rt5645_enable_push_button_irq(codec, false);
		else {

		if (rt5645->pdata.jd_mode == 0)
			snd_soc_dapm_disable_pin(dapm, "LDO2");
		snd_soc_dapm_disable_pin(dapm, "Mic Det Power");
		snd_soc_dapm_sync(dapm);
	}
	}

	return rt5645->jack_type;
}