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
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.
Found the offending commit: sense_via_ verbs() if monitor_present is 1 and
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_
eld_valid is 0.
paul@rabachi: ~/colinKernels/ new4.9. 180/my4. 9.180$ LANG=en git bisect replay bisect.log 595f9e1a2d442a4 cc6e6a3551 is the first bad commit 595f9e1a2d442a4 cc6e6a3551
Already on 'master'
Your branch is ahead of 'origin/master' by 4 commits.
(use "git push" to publish your local commits)
72cd3810e52c606
commit 72cd3810e52c606
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 7f641e26a6df926 9cb25dd7a4b0a91 d6586ed441 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 sense_via_ verbs() . In this pin_sense( ), after jack_report_ sync(),
so, let us change the function hdmi_present_
function, it reads the pin_sense via snd_hda_
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_
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 sense_via_ verbs() if monitor_present is 1 and
through hdmi_present_
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 0280e65d8aca256 1b6ed8ee27383d1 cd0e3cc022 ebe57ab9f50fdb2 851d074f5d2c95f 5e74beb541 M sound ~/colinKernels/ new4.9. 180/my4. 9.180$
paul@rabachi: