-   Slackware (
-   -   Screen not useable after laptop lid closed (

yuchankit 05-17-2010 10:39 AM

Screen not useable after laptop lid closed
I'm using Slackware 13.1 RC1,gm45 GPU.

After I closed the laptop lid and opened in again,the screen is blank and I could only see the pointer,but nothing else.

Any idea on this problem?Thanks for your immediate attention

sahko 05-17-2010 10:44 AM

Did you try to move the pointer? I get that too in my netbook but when i move the pointer i get the KDE login dialogue.

brixtoncalling 05-17-2010 11:05 AM

I've occasionally had this problem a couple of times when returning from suspend-to-ram. What I've done is switch to tt6 (alt-ctl-f6), log in as user, run:

DISPLAY=:0 kwin --replace
Not pretty but it works. I've yet to figure out what causes this to happen since it doesn't happen every time I resume.

yuchankit 05-17-2010 08:21 PM

@Sahko:I did move the pointer,but I can only see the pointer moving.

@brixtoncalling:I will try that.Thanks.

allend 05-18-2010 09:03 AM

This bug is discussed here.
A fix is shown here.

yuchankit 05-18-2010 10:15 PM


When we get a CRTC to use for load detection, we restore its DPMS state

if needed. We shouldn't, however, change the DRM configuration by

calling drm_helper_disable_unused_functions when we release the CRTC.

Doing so can cause problems with resume, since at suspend or lid close

time, X may choose to probe outputs. If it doesn't re-probe them at

open or resume time, LVDS won't be restored, since

drm_helper_disable_unused_functions will have turned it off, preventing

the mode set at lid open from restoring it.

Does it suggest me not to call drm_helper_disable_unused_functions?If so,how I can disable it?

allend 05-19-2010 11:38 AM

To try the fix you will need to compile and install a new i915.ko kernel module.
To do this (I am assuming you have the kernel source installed), log in as root and:
1. Edit /usr/src/linux/drivers/gpu/drm/i915/intel_display.c and comment out the relevant lines
Line 3745

/* struct drm_device *dev = encoder->dev; */
Line 3755

/* drm_helper_disable_unused_functions(dev);*/
2. 'cd /usr/src/linux' to change to the top of the kernel source tree
3. 'cp .config .config.orig' to keep a backup of the original .config
4. 'make mrproper' to clean the source tree. Can be omitted if you have a pristine source tree.
5. 'cp .config.orig .config' to recover the original .config file
6. 'make oldconfig'
7. 'make prepare'
8. 'make modules_prepare' to prepare the source tree.
9. 'make M=drivers/gpu/drm/i915' to compile the patched kernel module.
10. 'cp /lib/modules/$(uname -r)/kernel/drivers/gpu/drm/i915/i915.ko /tmp' to keep a copy of the original
11. 'cp ./drivers/gpu/drm/i915/i915.ko /lib/modules/$(uname -r)/kernel/drivers/gpu/drm/i915/i915.ko' to update to the patched kernel module.
12. 'shutdown -r now' to reboot and try the patch!

I wish you good luck with this.

yuchankit 05-20-2010 02:10 AM

Unfortunately,I'm using kernel

root@root:/usr/src/linux# make M=drivers/gpu/drm/i915

WARNING: Symbol version dump /usr/src/linux-
is missing; modules will have no dependencies and modversions.

CC [M] drivers/gpu/drm/i915/intel_display.o
drivers/gpu/drm/i915/intel_display.c: In function 'intel_get_load_detect_pipe':
drivers/gpu/drm/i915/intel_display.c:3713: error: 'c' undeclared (first use in this function)
drivers/gpu/drm/i915/intel_display.c:3713: error: (Each undeclared identifier is reported only once
drivers/gpu/drm/i915/intel_display.c:3713: error: for each function it appears in.)
drivers/gpu/drm/i915/intel_display.c:3713: error: expected ';' before '}' token
make[1]: *** [drivers/gpu/drm/i915/intel_display.o] Error 1
make: *** [_module_drivers/gpu/drm/i915] Error 2

allend 05-20-2010 10:33 AM

I beg your pardon, I made a mistake in the first line number. I have edited my post #7 with the update.
The patched module now compiles for me.

yuchankit 09-29-2010 04:36 AM

Sorry to dig this old thread up.I was quite busy and therefore I had no time to try out the solution until recently.

Unfortunately,that approach did not work as well and I still suffer from the same problem even after upgrading to xorg-server 1.9.1 and intel driver 2.12 .

For anyone who has the almost the same (intel card) setup as mine and does not suffer the same problem,can you post your xorg-server version,intel driver version as well as the kernel version?I really appreciate it.

Here's my research.

Allend's approach is correct, but the bug should have been fixed from kernel version 2.6.32-18 onwards.There's also another solution but I'm still a novice and I don't know how to apply the theory in slackware since the solution above is arch-linux specific.

All times are GMT -5. The time now is 09:53 PM.