Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 05 Sep 2013 00:39:07 +0200
From:      Bengt Ahlgren <bengta@sics.se>
To:        Jung-uk Kim <jkim@FreeBSD.org>
Cc:        Kevin Oberman <rkoberman@gmail.com>, freebsd-acpi <freebsd-acpi@FreeBSD.org>, Laura Marie Feeney <lmfeeney@sics.se>, Gleb Smirnoff <glebius@FreeBSD.org>, "Sergey A. Osokin" <osa@FreeBSD.org>, =?iso-8859-1?Q?Jean-S=E9bastien_P=E9dron?= <dumbbell@FreeBSD.org>
Subject:   Re: suspend/resume on Lenovo X1 (regression from reports on wiki)
Message-ID:  <uh71u54ky9g.fsf@P142.sics.se>
In-Reply-To: <522791D2.9050606@FreeBSD.org> (Jung-uk Kim's message of "Wed, 04 Sep 2013 16:02:26 -0400")
References:  <521D03AE.3050709@sics.se> <201309031647.47650.jhb@freebsd.org> <522669AF.5000209@FreeBSD.org> <201309040929.35903.jhb@freebsd.org> <52276554.6020807@FreeBSD.org> <uh7a9jsl7qf.fsf@P142.sics.se> <522791D2.9050606@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Jung-uk Kim <jkim@FreeBSD.org> writes:

> On 2013-09-04 15:14:32 -0400, Bengt Ahlgren wrote:
>> Jung-uk Kim <jkim@FreeBSD.org> writes:
>> 
>>> On 2013-09-04 09:29:35 -0400, John Baldwin wrote:
>>>> On Tuesday, September 03, 2013 6:58:55 pm Jung-uk Kim wrote:
>>>>> On 2013-09-03 16:47:47 -0400, John Baldwin wrote:
>>>>>> Even with that hacked so I force vgapm0 and dpms0 to
>>>>>> attach, I still can't resume in console mode, ...
>>>>> 
>>>>> What happens?  Does it panic, hang, or just no backlight?
>>>> 
>>>> Just no backlight.  It resumes fine and if I do it in multiuser
>>>> I can ssh in, etc.  It's just the backlight that doesn't
>>>> resume.  I was hopeful dpms.ko would fix that, but it didn't.
>>>> :(
>>> 
>>> Ah, that's a well-known problem and we cannot fix it without help
>>> of machine-specific code, e.g., drm1/drm2.  Actually, both
>>> acpi_video and dpms try to restore video settings but nothing
>>> worked for Intel GPUs + LVDS + LCD panel AFAIK.
>>> 
>>>> I think i915drm has code to specifically turn on the backlight
>>>> as I get some weird error message in the kernel console about
>>>> a timeout trying to turn the panel off during suspend when I'm
>>>> in X.
>>> So, I guess it has an ordering issue.  If my memory serves, drm1
>>> was okay with vesa, however.  I *think* it accidentally worked
>>> because of automatic VT-switching, which is still broken for
>>> KMS.
>> 
>> Yes, perhaps, but there is also the sysctl hw.acpi.reset_video
>> which I have enabled on my older hardware (TP X40 running 8.3-REL
>> and an old Xorg server) for it to work properly.  (I however have
>> some faint memory that reset_video might a no-op these days, or?)
>
> No, I didn't remove it.  However, I strongly discourage it.  In fact,
> the same functionality exists in vesa.c and it is safer.
>
>> In this old mail regarding reset_video, there is a thought that it 
>> could be good with "more" reinitialisation:
>> 
>> http://lists.freebsd.org/pipermail/freebsd-acpi/2006-July/002959.html
>
> vesa.c
>> 
> does pretty much the same thing.  FYI, vbetool does "more" but
> it does not really do more "reinitialisation".
>
> % grep ^MAINTAINER sysutils/vbetool/Makefile
> MAINTAINER=     jkim@FreeBSD.org
>
> :-)

Great!  Is vesa.c = options VESA = vesa.ko?

>> I however have one datapoint that I think contradicts John's
>> thought. This is on a X201 with stable/9 and no options VESA.  I
>> first just booted up and stayed in text console, suspended and
>> resumed.  No backlight, of course, and also no content on the LCD,
>> it is completely black.
>
> Panel may be completely off.
>
>> Then, I started Xorg with KMS.  Still no backlight, but you can see
>> that the LCD is driven with the desired content, which is one step 
>> forward.  Finally, I suspended and resumed, but no difference, the 
>> backlight is still off.
>
> I believe i915kms explicitly turns on LVDS/LCD panel.  I guess it
> doesn't change brightness, though.
>
>> Xorg/KMS didn't manage to turn the backlight on, so the text
>> console suspend/resume cycle managed to persistently turn the
>> backlight off.
>
> Can you change the brightness via hotkeys or acpi_video?

The value of hw.acpi.video.lcd0.brightness changes when the screen
brightness keys (Fn+Home/End) are pressed, but nothing happens with the
screen.  Same goes for changing the value with sysctl.  After a fresh
boot it works with one issue.  The screen brightness level seems to lag
behind one keypress.  Without acpi_video, screen brightness changes
without the lag.

hw.acpi.video.lcd0.active is always stuck at 0 - can't change with
sysctl (regardless if the screen is on after a fresh boot, or black
after a text console suspend/resume):

[root@bit ~]# sysctl hw.acpi.video.lcd0.active=1
hw.acpi.video.lcd0.active: 0 -> 0

Again, for my old X40 with non-KMS Xorg intel driver has (curiously, the
screen blinks when issuing this sysctl command):

[bengta@P142 ~]$ sysctl hw.acpi.video
hw.acpi.video.lcd0.active: 1
hw.acpi.video.crt0.active: 0

Jumping to another thing.  The Xorg intel/KMS driver does not present a
backlight property using RandR (older non-KMS intel driver did):

[bengta@bit ~]$ xbacklight 
No outputs have backlight property

Bengt

>> One more thing, the kernel logs this at resume directly after the 
>> devices are powered on (transition to D0), but I have no idea
>> whether it is relevant:
>> 
>> Sep  2 19:57:21 bit kernel: error: [drm:pid1904:intel_lvds_enable]
>> *ERROR* timed out waiting for panel to power off
>
> Yes, it looks relevant.
>
> Jung-uk Kim



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?uh71u54ky9g.fsf>