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

Commit e2cef68d authored by Jie Yang's avatar Jie Yang Committed by Mark Brown
Browse files

ASoC: rt286: add jack detection disable with NULL jack passed



Some platforms, e.g. WSB, don't need jack detection when
system is in Suspend, for power save reason.

Here add headphone/mic jack detection disable feature with NULL
jack passed in, when disabled, it will disable interrupt, and
disable LDO1, which is used for jack detection when headphone
is plugged in.

Signed-off-by: default avatarJie Yang <yang.jie@intel.com>
Reviewed-by: default avatarBard Liao <bardliao@realtek.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent c517d838
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -395,9 +395,20 @@ int rt286_mic_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack)

	rt286->jack = jack;

	if (jack) {
		/* enable IRQ */
		if (rt286->jack->status | SND_JACK_HEADPHONE)
			snd_soc_dapm_force_enable_pin(&codec->dapm, "LDO1");
		regmap_update_bits(rt286->regmap, RT286_IRQ_CTRL, 0x2, 0x2);
		/* Send an initial empty report */
	snd_soc_jack_report(rt286->jack, 0,
		snd_soc_jack_report(rt286->jack, rt286->jack->status,
			SND_JACK_MICROPHONE | SND_JACK_HEADPHONE);
	} else {
		/* disable IRQ */
		regmap_update_bits(rt286->regmap, RT286_IRQ_CTRL, 0x2, 0x0);
		snd_soc_dapm_disable_pin(&codec->dapm, "LDO1");
	}
	snd_soc_dapm_sync(&codec->dapm);

	return 0;
}