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

Commit b43d2247 authored by Dylan Reid's avatar Dylan Reid Committed by Takashi Iwai
Browse files

ALSA: hda - Don't power up when not powered down.



After cancel_delayed_work_sync returns, the power down work either never
started (power_on == 1) or finished (power_on == 0).  In the former case
there is no need to power up again.

Signed-off-by: default avatarDylan Reid <dgreid@chromium.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent e9ea8e8f
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -4444,6 +4444,13 @@ static void __snd_hda_power_up(struct hda_codec *codec, bool wait_power_down)
	cancel_delayed_work_sync(&codec->power_work);

	spin_lock(&codec->power_lock);
	/* If the power down delayed work was cancelled above before starting,
	 * then there is no need to go through power up here.
	 */
	if (codec->power_on) {
		spin_unlock(&codec->power_lock);
		return;
	}
	trace_hda_power_up(codec);
	snd_hda_update_power_acct(codec);
	codec->power_on = 1;