Acer laptop with Intel HD3000 + nVidia (Optimus), massive issues with S3 suspend and resume (10.0-RELEASE-p2 GENERIC, i915kms etc)

Arto Pekkanen isoa at kapsi.fi
Sat May 17 15:46:01 UTC 2014


Like the subject states, laptop's LCD turns off permanently after S3 resume.

Here are the use cases in which this happens.



=> CASE 1: boot without HDMI

When I do `acpiconf -S3`, the system suspends to RAM just as it should. But when I resume (by pressing power button or any key), LCD turns on only for a few seconds, after which the LCD powers off by itself.

If I was in X.org, I can see the previous framebuffer contents on the screen during the few seconds the LCD is on.

And when I mean the LCD turns off, I mean it goes completely dead, as if I had closed the lid on the device!

I tried the following:
1) sysctl hw.syscons.sc_no_suspend_vtswitch=1
2) sysctl hw.acpi.reset_video=1
3) sysctl hw.acpi.sleep_delay=5

.. but no combination of these help.

I can SSH into the laptop and do whatever; kernel did not panic, everything works. It's just that LVDS is not powered back on, even if it definitely should.



=> CASE 2: boot without HDMI, connect HDMI after boot

This case is the same as previous, with one exception: if I configure HDMI output with xrandr so that I get signal on the external display, then do S3 suspend, the device locks up after S3 resume: HDMI loses signal, LCD turns on but with blank screen, device does not react to power button, assuming kernel crash.

IMPORTANT NOTE: if I configure HDMI output AFTER S3 resume, the framebuffer is corrupted, I get garbled output on the external.

Restarting X.org does not help, it just makes X.org unresponsive to xrandr or any other commands, it cannot be killed with -9 either. When this happened, I got the following interesting dmesg:

i915_gem_object_put_fence: pin_count -1
error: [drm:pid1320:intel_lvds_disable] *ERROR* timed out waiting for panel to power off
error: [drm:pid1320:intel_lvds_disable] *ERROR* timed out waiting for panel to power off
error: [drm:pid1577:intel_lvds_enable] *ERROR* timed out waiting for panel to power off
error: [drm:pid12:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
info: [drm] capturing error event; look for more information in sysctl hw.dri.0.info.i915_error_state

The i915_error_state from this occurrence can be viewed with the following link:
https://app.younited.com/?shareObject=b39812ee-5dc7-235e-7996-905e66ddf5b1



=> CASE 3: boot with HDMI connected

Another problem is that when I boot the laptop with HDMI connected, LCD stays turned off and all output goes to HDMI display. It is the BIOS that forcefully redirects output to HDMI. Furthermore, LVDS (LCD) cannot be powered on! I tried `xrandr --output LVDS1 --left-of HDMI1 --auto`, the result was that a "screen" was acquired in LVDS but the LCD stays turned off.

With HDMI connected at boot, S3 suspend and resume work perfectly, but ONLY IF I had syscons console on the screen. If I had X.org and HDMI connected when S3 suspending, after S3 resume HDMI loses signal, LVDS is turned on but there is NO output in it. I also assume kernel crashed  because I cannot get SSH, nor does the system react to pressing the power button. The only option is to force power off by long-pressing power button.

The by tailing /var/log/messages I did not see any errors in dmesg.

X.org log reported the following:
[  1010.471] (II) AIGLX: Suspending AIGLX clients for VT switch
[  1010.471] (WW) intel(0): drmDropMaster failed: Unknown error: -22

Hmm, interesting? 

I also tried `hw.syscons.sc_no_suspend_vtswitch=1`, and tried S3 suspend. After S3 resume, HDMI loses signal, LVDS is turned on with blank screen, device does not react to anything so assuming kernel crash. 

The only difference was X.org log:
[   350.423] (EE) intel(0): Failed to submit batch buffer, expect rendering corruption: Device busy.

Since there was no vt switch, the i915kms driver managed to do something else, and reported failure to submit batch buffer, what ever that means ...



As a final note, I remember I did not have this issue on 9.2-RELEASE a long time ago. I had to update to 10.0-RELEASE because in 9.x the video playback was horribly choppy.

Regarding these issues I have the following questions:
1) Is this issue fixed in 10-STABLE ?
2) Is this issue fixed in CURRENT ?
3) What more can I do to fix this problem, considering that I am not a software developer? I can submit more info for devs etc ...
4) Do I have to wait till i915kms is updated in par with Linux 3.8, or is there any way to get around these problems?

-- 
Arto Pekkanen, säätäjä
ksym at IRCnet

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 293 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-x11/attachments/20140517/df158556/attachment.sig>


More information about the freebsd-x11 mailing list