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.
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. ;)
We're all on x201s, which is a 1440x900 panel. Our black-screen-on-module-load is too infrequent to test well.
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?
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.
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.
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?
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?
Jesse, it's from a PLL table for IBX on bspec site.
Created attachment 35998 [details] intel_gpu_dump output on X201
Created attachment 35999 [details] video bios on X201
(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!
You can git clone intel-gpu-tools directly and build the tools. Please also attach dmesg with 'drm.debug=7' and X logs.
Created attachment 36023 [details] intel_reg_dumper output on X201
Created attachment 36024 [details] dmesg output with drm.debug=7 on X201
Created attachment 36025 [details] Xorg log
(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!
*** 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.