Bug 28180

Summary: [Ironlake bisected] black screen on ThinkPad X201 (regression in 2.6.33)
Product: DRI Reporter: Ben Pfaff <blp>
Component: DRM/IntelAssignee: Wang Zhenyu <zhenyu.z.wang>
Status: CLOSED DUPLICATE QA Contact:
Severity: normal    
Priority: medium CC: eric, zhenyu.z.wang
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
rom file
none
intel_gpu_dump output on X201
none
video bios on X201
none
intel_reg_dumper output on X201
none
dmesg output with drm.debug=7 on X201
none
Xorg log none

Description Ben Pfaff 2010-05-19 20:44:38 UTC
I bought a new Thinkpad X201 last week.  The integrated i915 works well with upstream Linux 2.6.32 (built from plain kernel.org sources), but 2.6.33 and 2.6.34 boot to a black screen in X.

I bisected the problem to commit b91ad0ec527 "drm/i915: Rework DPLL calculation parameters for Ironlake".  Reverting this commit from kernel v2.6.34 allows X video to function normally.  100% reproducible in my testing, happens immediately at X startup.

I'm not sure how to identify the chipset.  Here's the lspci output:

00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02)
00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
00:16.3 Serial controller: Intel Corporation 5 Series/3400 Series Chipset KT Controller (rev 06)
00:19.0 Ethernet controller: Intel Corporation 82577LM Gigabit Network Connection (rev 06)
00:1a.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
00:1c.3 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 4 (rev 06)
00:1c.4 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 5 (rev 06)
00:1d.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation Mobile 5 Series Chipset LPC Interface Controller (rev 06)
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller (rev 06)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 06)
02:00.0 Network controller: Intel Corporation Centrino Ultimate-N 6300 (rev 35)
ff:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02)
ff:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02)
ff:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
ff:02.1 Host bridge: Intel Corporation Core Processor QPI Physical 0 (rev 02)
ff:02.2 Host bridge: Intel Corporation Core Processor Reserved (rev 02)
ff:02.3 Host bridge: Intel Corporation Core Processor Reserved (rev 02)

Behavior is the same with i386 and x86_64.

-- libdrm: 2.4.18-5 (Debian).
-- xserver-xorg-video-intel: 2:2.9.1-3 (Debian).

This is with the builtin flat panel display on the Thinkpad.  Resolution is 1280x800.

I'll happily test any suggested fix or provide additional information as necessary.
Comment 1 Wang Zhenyu 2010-05-20 00:36:55 UTC
Maybe BIOS doesn't show up right SSC config that break the optimized DPLL parameter for Ironlake? US guys should have plenty of x201 to check with. ;)
Comment 2 Eric Anholt 2010-05-20 13:16:03 UTC
We're all on x201s, which is a 1440x900 panel.  Our black-screen-on-module-load is too infrequent to test well.
Comment 3 Jesse Barnes 2010-05-27 15:00:55 UTC
I talked with one of the hw engineers about this too; it sounds like the VBIOS programming sequence (which I think was copied to create our ILK display code) is or was incorrect.  He said the latest b-spec has the correct programming sequence.

Zhenyu have you audited our code against the latest b-spec lately?
Comment 4 Wang Zhenyu 2010-05-27 20:01:12 UTC
yeah, I audit the programming sequence when enabling SNB/CPT stuff for ILK as well, and did change a little bit following bspec order. 

If this problem is DPLL parameter generation fail, that might be my guess on broken SSC flag, otherwise I would suggest to test new kernel.
Comment 5 Jesse Barnes 2010-05-27 20:15:16 UTC
Created attachment 35897 [details]
rom file

Here's the vbios rom from my x201s.  I haven't looked at it yet, could very well be a SSC bit problem.
Comment 6 Jesse Barnes 2010-06-01 12:06:30 UTC
Zhenyu, looks like my ROM indicates a 96MHz SSC freq:
        Enable SSC: yes
        SSC frequency: 96 MHz (48 MHz on 855)

I noticed you have some special handling for SSC freqs of 100 in b91ad0ec527, where did you get that info?  Do we need to handle other frequencies as well?
Comment 7 Wang Zhenyu 2010-06-01 18:47:41 UTC
oh, intel_bios_reader needs update for Ironlake SSC param number, only 100Mhz or 120Mhz should be available. 

Ben, could you follow http://intellinuxgraphics.org/how_to_report_bug.html to attach required info files?
Comment 8 Wang Zhenyu 2010-06-01 18:48:48 UTC
Jesse, it's from a PLL table for IBX on bspec site.
Comment 9 Ben Pfaff 2010-06-01 20:57:47 UTC
Created attachment 35998 [details]
intel_gpu_dump output on X201
Comment 10 Ben Pfaff 2010-06-01 20:58:26 UTC
Created attachment 35999 [details]
video bios on X201
Comment 11 Ben Pfaff 2010-06-01 21:00:52 UTC
(In reply to comment #7)
> Ben, could you follow http://intellinuxgraphics.org/how_to_report_bug.html to
> attach required info files?

I did my best, but the instructions for running intel_reg_dumper are confusing, because they refer to a program named tools/intel_reg_dumper that does not exist.  A program named tools/intel_gpu_dump does exist, so I ran that.  It produces a huge output file, so I had to gzip it for Bugzilla to accept it.

Let me know if I should have posted something else.

Thank you!
Comment 12 Wang Zhenyu 2010-06-02 19:20:25 UTC
You can git clone intel-gpu-tools directly and build the tools.

Please also attach dmesg with 'drm.debug=7' and X logs.
Comment 13 Ben Pfaff 2010-06-02 20:30:53 UTC
Created attachment 36023 [details]
intel_reg_dumper output on X201
Comment 14 Ben Pfaff 2010-06-02 20:42:00 UTC
Created attachment 36024 [details]
dmesg output with drm.debug=7 on X201
Comment 15 Ben Pfaff 2010-06-02 20:43:44 UTC
Created attachment 36025 [details]
Xorg log
Comment 16 Ben Pfaff 2010-06-02 20:45:11 UTC
(In reply to comment #12)
> You can git clone intel-gpu-tools directly and build the tools.
> 
> Please also attach dmesg with 'drm.debug=7' and X logs.

OK, I've attached all of these.  Thanks!
Comment 17 Wang Zhenyu 2010-07-04 21:33:28 UTC

*** This bug has been marked as a duplicate of bug 27471 ***

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.