On Thu, 10 Dec 2015 13:59:59 +0100, David Henningsson wrote:
On 2015-12-10 10:53, Takashi Iwai wrote:
On Thu, 10 Dec 2015 10:47:59 +0100, David Henningsson wrote:
Hi Takashi,
A recent change in sound.git seems to have introduced some repoll after pm. Is this an intentional change? I don't think it's wrong per se (it stops after 6 repolls), but it breaks my hda-emu tester when "list" does not return the expected input.
Hm, there is no such an intended change.
After testing some more, I've found that reverting e90247f9 (Split ELD update code from hdmi_present_sense) fixes the issue, so it seems like this commit indeed contains a functional change...
Thanks for chasing it. Does the following patch work better?
Takashi
--- diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 35a78a6f87a6..2a7d29a07f31 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -1605,6 +1605,7 @@ static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll) */ int present; bool ret; + bool do_repoll = false;
snd_hda_power_up_pm(codec); 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_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)); else update_eld(codec, per_pin, eld);