Bug 52601 - [eDP vs LVDS PP fights] Blank screen when booting 3.8-rc3
Summary: [eDP vs LVDS PP fights] Blank screen when booting 3.8-rc3
Status: RESOLVED PATCH_ALREADY_AVAILABLE
Alias: None
Product: Drivers
Classification: Unclassified
Component: Video(DRI - Intel) (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Jani Nikula
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-12 03:38 UTC by Ryan Coe
Modified: 2013-01-16 09:28 UTC (History)
2 users (show)

See Also:
Kernel Version: 3.8-rc3
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
lspci output (1.83 KB, text/plain)
2013-01-12 03:38 UTC, Ryan Coe
Details
drm debug output from dmesg (76.60 KB, text/plain)
2013-01-12 17:26 UTC, Ryan Coe
Details
Kernel bisection log (2.48 KB, text/plain)
2013-01-14 00:51 UTC, Ryan Coe
Details
drm/i915/eDP: do not write power sequence registers for ghost eDP (5.27 KB, patch)
2013-01-15 14:14 UTC, Jani Nikula
Details | Diff
dmesg (135.32 KB, text/plain)
2013-01-15 16:08 UTC, Ryan Coe
Details

Description Ryan Coe 2013-01-12 03:38:45 UTC
Created attachment 91051 [details]
lspci output

I am getting a blank screen during booting.  The system seems to be starting normally (I can hear the welcome sound in LightDM and I can access the machine via ssh).  Setting 'nomodeset' in /etc/default/grub will get the screen working, but I lose the ability to adjust brightness.  This is a regression from 3.7.
Comment 1 Daniel Vetter 2013-01-12 12:40:29 UTC
Please boot with drm.debug=0xe added to your kernel cmdline and grab the complete dmesg via ssh.
Comment 2 Ryan Coe 2013-01-12 17:26:06 UTC
Created attachment 91081 [details]
drm debug output from dmesg
Comment 3 Ryan Coe 2013-01-14 00:51:57 UTC
Created attachment 91271 [details]
Kernel bisection log

I tried to do some more digging with git bisect.  I believe that 82ed61fa1a4e08d5f9e86fb1b715b50ed678b6ac is the first commit that causes the problem.
Comment 4 Jani Nikula 2013-01-14 09:23:54 UTC
The machine seems to have a ghost eDP while the panel is LVDS. intel_dp_init_connector() sets up panel power sequencing based on eDP VBT data before noticing it's a ghost. (And, indeed, the machine seems to have an eDP blob in the video BIOS.) The change in the bisected commit is that it starts writing back the values to the power sequencing registers. The panel control port select bits of PP_ON_DELAYS are likely the critical part, screwing up LVDS.

As a side note, it would probably be sane to clean up intel digital port and intel connector in intel_dp_init() if intel_dp_init_connector() fails.
Comment 5 Jani Nikula 2013-01-15 14:14:08 UTC
Created attachment 91351 [details]
drm/i915/eDP: do not write power sequence registers for ghost eDP

Ryan, please try the attached patch.
Comment 6 Ryan Coe 2013-01-15 16:08:28 UTC
Created attachment 91361 [details]
dmesg

That patch seems to have cleared the problem.  I have attached my current dmesg with drm.debug output still on in case you want to look at it.  Thank you.
Comment 7 Jani Nikula 2013-01-16 08:54:02 UTC
Thanks, patch submitted for inclusion.
Comment 8 Daniel Vetter 2013-01-16 09:28:19 UTC
Merged to -fixes:

commit f30d26e468322b50d5e376bec40658683aff8ece
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Wed Jan 16 10:53:40 2013 +0200

    drm/i915/eDP: do not write power sequence registers for ghost eDP

Note You need to log in before you can comment on or make changes to this bug.