Bug 19239

Summary: (EE) intel(0): No valid modes , xserver fails to start
Product: xorg Reporter: cheryl
Component: Driver/intelAssignee: Wang Zhenyu <zhenyu.z.wang>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: cheryl, michael.fu, rui.zhang, yakui.zhao
Version: gitKeywords: NEEDINFO
Hardware: Other   
OS: All   
i915 platform: i915 features:
Description Flags
quirk broken acpi lid none

Description cheryl 2008-12-22 13:00:46 UTC
Created attachment 21407 [details]

The current intel driver fails to start X with:
(EE) intel(0): No valid modes
(EE) Screen(s) found, but none have a usable configuration.

Fatal server error:
no screens found

This is with a 915
Comment 1 cheryl 2008-12-22 13:01:26 UTC
Created attachment 21408 [details]
Comment 2 Michael Fu 2008-12-22 21:06:04 UTC
what's your laptop model? Is this a regression, i.e works before but fails with latest driver? Need more information. pls refer to http://intellinuxgraphics.org/how_to_report_bug.html
Comment 3 cheryl 2008-12-23 15:54:33 UTC
Created attachment 21454 [details]
Comment 4 cheryl 2008-12-23 15:55:52 UTC
Created attachment 21455 [details]
Comment 5 cheryl 2008-12-23 15:58:51 UTC

Here's a bit more:

Linux 2.6.28-rc9 #2 Sat Dec 20 03:46:53 EST 2008 i686 unknown unknown GNU/Linux

The i915 chipset fails to start up,  with no screens found on current intel driver.

The driver starts without issue.

This is on a centrino based laptop (Mirrus), running Slackware 10.2.
Comment 6 Michael Fu 2008-12-23 17:37:19 UTC
zhenyu, it seems your LVDS detection patch has an exception now...
Comment 7 Wang Zhenyu 2008-12-23 18:36:36 UTC
Well, acpi button has told driver the lid is closed, but lid is really open. So this is a bug for acpi people ;)

Cheryl, please check /proc/acpi/button/lid/state, is it saying close when your laptop's lid is open? Have you tested with other kernel versions?
Comment 8 ykzhao 2008-12-23 19:32:43 UTC
hi, Cheryl
    From the info in comment #7 it seems that the LID state is incorrect.
    Will you please attach the output of acpidump?
    The latest acpidump tool(20071114) can be found in 
Comment 9 cheryl 2008-12-23 21:20:58 UTC
Created attachment 21459 [details]



Linux 2.6.28-rc9

state:      closed

Linux 2.6.27

state:      closed

Yep, this is with the lid open.

It looks like the current code is actually paying attention to this whereas the previous code didn't.
Comment 10 ykzhao 2008-12-23 21:50:52 UTC
Hi, Cheryl
    From the acpidump it seems that the LID state is not initailized by BIOS.
    >Method (_LID, 0, NotSerialized)
         Return (LIDS) // LIDS is defined in BIOS NVS memory region
    Only after LID is closed and reopened, the LIDS can be updated correctly.
    Will you please confirm whether the LID state is incorrect after the LID is closed and reopened?
Comment 11 cheryl 2008-12-24 01:25:53 UTC
That did it, and X started right up. 

state:      open

Comment 12 ykzhao 2008-12-24 17:11:47 UTC
Hi, Cheryl
    Thanks for the test.
    From the test it seems that the LID state is correct after the LID is closed and reopened it.
    Now the issue is related with BIOS. It had better be fixed by BIOS upgrading. If an EC internal register in AML code is defined explicitly that reflected the correct LID state, this issue can be workaround by using the custom DSDT. But unfortunately we can do nothing as there is no such an EC internal register.
Comment 13 Wang Zhenyu 2008-12-24 17:16:59 UTC
Nice analysis! Yakui, thanks a lot! Cheryl, could you attach lspci -nv? I can make a quirk for this kind of broken bios in video driver.
Comment 14 cheryl 2008-12-24 21:38:57 UTC
Created attachment 21473 [details]

Ok, cool. Looks like that should do it for this one.

Here it is.
Comment 15 Wang Zhenyu 2008-12-24 23:33:54 UTC
Created attachment 21474 [details] [review]
quirk broken acpi lid

Please test with this patch, if this still doesn't work without lid open/close hack, please paste src/bios_render/swf_dumper output.
Comment 16 cheryl 2008-12-25 10:34:03 UTC
Yep, looks like that did it, no open/close needed. 
Comment 17 Wang Zhenyu 2008-12-28 18:13:28 UTC
Pushed. Close.

commit fcd280b730f86ea54ecd89d3e037e71f8375b5f5
Author: Zhenyu Wang <zhenyu.z.wang@intel.com>
Date:   Mon Dec 29 10:05:17 2008 +0800

    Bug #19239: Add a quirk for broken ACPI lid state
    For broken hardware/bios with incorrect ACPI LID state,
    there's machine that can not be fixed in ACPI way, customed
    DSDT that reprogram _LID method to read EC state. Although
    this is ACPI issue, this quirk can be used to work around that.

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.