Bug 111966

Summary: [bisected] GDM Login screen doesn't show up on kernel 5.3 or later
Product: DRI Reporter: Masami Ichikawa <masami256>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: RESOLVED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: major    
Priority: high CC: freedesktop201910, intel-gfx-bugs, jani.nikula, jirislaby, rncbc
Version: DRI git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
See Also: https://bugs.freedesktop.org/show_bug.cgi?id=112005
Whiteboard: Triaged, ReadyForDev
i915 platform: CFL, KBL i915 features: display/DP
Attachments:
Description Flags
dmesg output
none
/sys/class/drm/card0/error file
none
vbios dump file
none
xrandr output
none
dmesg with bug
none
dmesg with fix from Masami
none
i915_vbt
none
i915_vbt dump file
none
[PATCH] drm/i915: Favor last VBT child device with conflicting AUX ch/DDC pin none

Description Masami Ichikawa 2019-10-10 07:04:21 UTC
1. problem

Boot with kernel 5.3 or later, GDM login screen doesn't show up.
Following log is displayed in console.

Starting Show Plymouth Boot Screen...

When I remove rhgb and quiet from kernel command line, it shows gray background screen and blinking.

Kernel 5.2.18 doesn't have such issue.
I checked 5.2.18(fedora kernel) and 5.2.18(stable release) both works fine.

I've tested drm-tip tree(HEAD is ec6a1544198d81f34a367bfb18173e402bbee0fa). The drm-tip tree kernel has same issue.


2. Steps to reproduce the issue. 

Boot with kernel 5.3 or later

3. How often does the steps listed above trigger the issue?

always

4. The following information about your system:

system architecture: x86_64
kernel versions: 5.4-rc2(mainline), 5.4-rc2(drm-tip), 5.3.2(fedora kernel), 5.3.2(stable release)
Linux distribution: Fedora 30
Display connector: HDMI and DIV
/sys/class/drm/card0/error: I'll attach
dmesg: I'll attach
xrandr output: I'll attatch (taks this output on kernel 5.2.18)
VBIOS dump: I'll attach

5. bisect

If I did bisect correctly, "drm/i915/bios: make child device order the priority order(36a0f92020dc8794d3aa69b7fb4c5d2bf99b0099)" is first bad commit. previous commit "drm/i915: Enable intel_color_get_config()(3633e5116dfb01f98de4c88daf2c673c52290755)" works fines.

I took dmesg, /sys/class/drm/card0/error, VBIOS dump on drm-tip kernel.
Comment 1 Masami Ichikawa 2019-10-10 07:07:06 UTC
Created attachment 145693 [details]
dmesg output
Comment 2 Masami Ichikawa 2019-10-10 07:07:40 UTC
Created attachment 145694 [details]
/sys/class/drm/card0/error file
Comment 3 Masami Ichikawa 2019-10-10 07:08:07 UTC
Created attachment 145695 [details]
vbios dump file
Comment 4 Masami Ichikawa 2019-10-10 07:08:32 UTC
Created attachment 145696 [details]
xrandr output
Comment 5 Lakshmi 2019-10-10 11:47:10 UTC
(In reply to Masami Ichikawa from comment #0)
> 1. problem
> 
> Boot with kernel 5.3 or later, GDM login screen doesn't show up.
> Following log is displayed in console.
> 
> Starting Show Plymouth Boot Screen...
> 
> When I remove rhgb and quiet from kernel command line, it shows gray
> background screen and blinking.
> 
> Kernel 5.2.18 doesn't have such issue.
> I checked 5.2.18(fedora kernel) and 5.2.18(stable release) both works fine.
> 
> I've tested drm-tip tree(HEAD is ec6a1544198d81f34a367bfb18173e402bbee0fa).
> The drm-tip tree kernel has same issue.
> 
> 
> 2. Steps to reproduce the issue. 
> 
> Boot with kernel 5.3 or later
> 
> 3. How often does the steps listed above trigger the issue?
> 
> always
> 
> 4. The following information about your system:
> 
> system architecture: x86_64
> kernel versions: 5.4-rc2(mainline), 5.4-rc2(drm-tip), 5.3.2(fedora kernel),
> 5.3.2(stable release)
> Linux distribution: Fedora 30
> Display connector: HDMI and DIV
> /sys/class/drm/card0/error: I'll attach
> dmesg: I'll attach
> xrandr output: I'll attatch (taks this output on kernel 5.2.18)
> VBIOS dump: I'll attach
> 
> 5. bisect
> 
> If I did bisect correctly, "drm/i915/bios: make child device order the
> priority order(36a0f92020dc8794d3aa69b7fb4c5d2bf99b0099)" is first bad
> commit. previous commit "drm/i915: Enable
> intel_color_get_config()(3633e5116dfb01f98de4c88daf2c673c52290755)" works
> fines.
> 
> I took dmesg, /sys/class/drm/card0/error, VBIOS dump on drm-tip kernel.

Jani, any comments?
Comment 6 Masami Ichikawa 2019-10-10 13:17:55 UTC
I made quick hack. following patch works fine for me on mainline kernel 5.4-rc2.


diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index efb39f350b19..c886dae82aa7 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -1313,6 +1313,8 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
 
        p = get_port_by_aux_ch(dev_priv, info->alternate_aux_channel);
        if (p != PORT_NONE) {
+               info = &dev_priv->vbt.ddi_port_info[p];
+
                DRM_DEBUG_KMS("port %c trying to use the same AUX CH (0x%x) as port %c, "
                              "disabling port %c DP support\n",
                              port_name(port), info->alternate_aux_channel,
@@ -1330,6 +1332,7 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
                info->supports_dp = false;
                info->alternate_aux_channel = 0;
        }
+
 }
 
 static const u8 cnp_ddc_pin_map[] = {
Comment 7 Torsten 2019-10-11 14:12:07 UTC
I'm having a similar issue as Masami and git bisect pointed to the same commit 36a0f92020dc8794d3aa69b7fb4c5d2bf99b0099, so I thought I just add my comment here instead of raising a new bug.

My situation is a bit different as my server does not start GDM but stays on the console, but starting with the commit that Masami mentioned, my console always stays blank so I'm assuming the actual root cause for both our problems is the same.

My board is an Asrock B250M-HDV with Pentium Gold G4560 CPU (HD Graphics 610), running Debian 10.1 with stock x86_64 kernel and I noticed that the bug only occurs with the board's VGA output, DVI was fine but is usually not available to the server, HDMI could not be tested.

Testing with the latest available drm-tip (commit 0204e2b48f2a9ae8aff60393755f8164f2fa1038) the console stayed blank. The patch from Masami worked successfully both on drm-tip and official 5.3.5.

For comparison I'm attaching dmesg debug output once with and once without fix. The interesting part starts at [3.062539] on the broken dmesg and [3.071882] on the dmesg with fix. Maybe the debug output makes more sense to someone else than it does to me.
Comment 8 Torsten 2019-10-11 14:13:00 UTC
Created attachment 145708 [details]
dmesg with bug
Comment 9 Torsten 2019-10-11 14:13:26 UTC
Created attachment 145709 [details]
dmesg with fix from Masami
Comment 10 Ville Syrjala 2019-10-11 14:30:46 UTC
Please attach a dump of /sys/kernel/debug/dri/0/i915_vbt
Comment 11 Torsten 2019-10-11 14:36:22 UTC
Created attachment 145710 [details]
i915_vbt

As requested by Ville Syrjala
Comment 12 Masami Ichikawa 2019-10-11 14:43:27 UTC
Created attachment 145711 [details]
i915_vbt dump file

i915_vbt dump file requested by Ville Syrjala
Comment 13 Ville Syrjala 2019-10-11 16:58:35 UTC
Yeah the VBT clearly says both port A and port E are present and using the same AUX ch, which is nonsense.

One alternative might be the port A strap since that was documented to be busted only on early SKL part. But WaIgnoreDDIAStrap tells us we should keep ignoring it forever so that seems like a dead end.

So I guess we just go back to the old way of handling the conflicts.
Comment 14 Ville Syrjala 2019-10-11 17:01:49 UTC
Created attachment 145712 [details] [review]
[PATCH] drm/i915: Favor last VBT child device with conflicting AUX  ch/DDC pin

Here's a bit more polished/extended version of essentially the same patch as what Masami provided.

Would appreciate if you can double check that I didn't fumble things and it actually works.
Comment 15 Torsten 2019-10-11 19:00:46 UTC
Applied the patch to both drm-tip and 5.3.6 and I confirm both are working with the patch. I hope it also works for Masami and will eventually appear in stable.

Thanks Ville for the quick fix.
Comment 16 Masami Ichikawa 2019-10-12 02:12:51 UTC
I tested drm-tip and 5.3.5 kernels too. that both work fine :)
Thank you for Torsten the fix and thank you for Torsten to help debugging the problem.
Comment 17 Lakshmi 2019-10-14 07:58:12 UTC
Lets wait until the patch lands in drmtip before closing the issue.
Comment 18 Ville Syrjala 2019-10-14 14:04:32 UTC
Fixed with

commit 41e35ffb380bde1379e4030bb5b2ac824d5139cf
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Fri Oct 11 23:20:30 2019 +0300

    drm/i915: Favor last VBT child device with conflicting AUX ch/DDC pin


Thanks for the bug report and testing.
Comment 19 Ville Syrjala 2019-10-14 15:17:54 UTC
*** Bug 111985 has been marked as a duplicate of this bug. ***
Comment 20 Jiri Slaby 2019-10-29 08:54:58 UTC
*** Bug 112028 has been marked as a duplicate of this bug. ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.