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

Commit 30a765d6 authored by Vinod Koul's avatar Vinod Koul Committed by Mark Brown
Browse files

ASoC: dont call dapm_sync while reporting jack always



While reporting the jack status snd_soc_jack_report() invokes snd_soc_dapm_sync()
always. This should be required when we have pins associated with jack and
reporting enables or disables these.
So add a check for this case

Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 1dd275b6
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)
	struct snd_soc_codec *codec;
	struct snd_soc_dapm_context *dapm;
	struct snd_soc_jack_pin *pin;
	unsigned int sync = 0;
	int enable;

	trace_snd_soc_jack_report(jack, mask, status);
@@ -92,11 +93,15 @@ void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)
			snd_soc_dapm_enable_pin(dapm, pin->pin);
		else
			snd_soc_dapm_disable_pin(dapm, pin->pin);

		/* we need to sync for this case only */
		sync = 1;
	}

	/* Report before the DAPM sync to help users updating micbias status */
	blocking_notifier_call_chain(&jack->notifier, jack->status, jack);

	if (sync)
		snd_soc_dapm_sync(dapm);

	snd_jack_report(jack->jack, jack->status);