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

Commit 9a5e5234 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Fix superfluous HDMI jack repoll



The recent commit [e90247f9: ALSA: hda - Split ELD update code
from hdmi_present_sense()] rewrote the HDMI jack handling code, but a
slight behavior change sneaked in unexpectedly.  When the jack isn't
connected, it tries repoll unnecessarily.

This patch addresses the flaw, to the right behavior as before.

Fixes: e90247f9 ('ALSA: hda - Split ELD update code from hdmi_present_sense()')
Reported-and-tested-by: default avatarDavid Henningsson <david.henningsson@canonical.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 55913110
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -1605,6 +1605,7 @@ static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll)
	 */
	 */
	int present;
	int present;
	bool ret;
	bool ret;
	bool do_repoll = false;


	snd_hda_power_up_pm(codec);
	snd_hda_power_up_pm(codec);
	present = snd_hda_pin_sense(codec, pin_nid);
	present = snd_hda_pin_sense(codec, pin_nid);
@@ -1629,9 +1630,11 @@ static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll)
						    eld->eld_size) < 0)
						    eld->eld_size) < 0)
				eld->eld_valid = false;
				eld->eld_valid = false;
		}
		}
		if (!eld->eld_valid && repoll)
			do_repoll = true;
	}
	}


	if (!eld->eld_valid && repoll)
	if (do_repoll)
		schedule_delayed_work(&per_pin->work, msecs_to_jiffies(300));
		schedule_delayed_work(&per_pin->work, msecs_to_jiffies(300));
	else
	else
		update_eld(codec, per_pin, eld);
		update_eld(codec, per_pin, eld);