Comment 26 for bug 1993217

Revision history for this message
Paul Dufresne (dufresnep) wrote : Re: HDMI audio not available RS880 between 4.9.177 and 4.9.178

Found the offending commit:
Did not verify this, but I suspect this is the case:
    After this change, the driver will not report Jack_is_plugged event
    through hdmi_present_sense_via_verbs() if monitor_present is 1 and
    eld_valid is 0.

paul@rabachi:~/colinKernels/new4.9.180/my4.9.180$ LANG=en git bisect replay bisect.log
Already on 'master'
Your branch is ahead of 'origin/master' by 4 commits.
  (use "git push" to publish your local commits)
72cd3810e52c606595f9e1a2d442a4cc6e6a3551 is the first bad commit
commit 72cd3810e52c606595f9e1a2d442a4cc6e6a3551
Author: Hui Wang <email address hidden>
Date: Mon May 6 22:09:32 2019 +0800

    ALSA: hda/hdmi - Consider eld_valid when reporting jack event

    commit 7f641e26a6df9269cb25dd7a4b0a91d6586ed441 upstream.

    On the machines with AMD GPU or Nvidia GPU, we often meet this issue:
    after s3, there are 4 HDMI/DP audio devices in the gnome-sound-setting
    even there is no any monitors plugged.

    When this problem happens, we check the /proc/asound/cardX/eld#N.M, we
    will find the monitor_present=1, eld_valid=0.

    The root cause is BIOS or GPU driver makes the PRESENCE valid even no
    monitor plugged, and of course the driver will not get the valid
    eld_data subsequently.

    In this situation, we should not report the jack_plugged event, to do
    so, let us change the function hdmi_present_sense_via_verbs(). In this
    function, it reads the pin_sense via snd_hda_pin_sense(), after
    calling this function, the jack_dirty is 0, and before exiting
    via_verbs(), we change the shadow pin_sense according to both
    monitor_present and eld_valid, then in the snd_hda_jack_report_sync(),
    since the jack_dirty is still 0, it will report jack event according
    to this modified shadow pin_sense.

    After this change, the driver will not report Jack_is_plugged event
    through hdmi_present_sense_via_verbs() if monitor_present is 1 and
    eld_valid is 0.

    Signed-off-by: Hui Wang <email address hidden>
    Cc: <email address hidden>
    Signed-off-by: Takashi Iwai <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

:040000 040000 0280e65d8aca2561b6ed8ee27383d1cd0e3cc022 ebe57ab9f50fdb2851d074f5d2c95f5e74beb541 M sound
paul@rabachi:~/colinKernels/new4.9.180/my4.9.180$