Black Display after suspend/resume on Thinkpad X201 with
8.1/amd64
Jung-uk Kim
jkim at FreeBSD.org
Mon Aug 16 17:54:17 UTC 2010
On Monday 16 August 2010 06:34 am, David DEMELIER wrote:
> I enabled device dpms, and vesa stuff in the -CURRENT GENERIC
> kernel config but for the moment it resumes well (even the screen!)
> but take a look at the graphic output :
>
> http://files.malikania.fr/Photo0176.jpg
>
> This is X after resuming. Maybe the graphic card `cache|buffer'
> should be cleaned.
>
> Suspend and resuming works on my laptop now !
I am glad to hear it helped. :-)
X.org framebuffer corruption is a totally different issue. For
example, xf86-video-ati saves/restores everything when VT is
switching (not only 2D frame buffer but also 3D texture buffer and
some critical GPU registers, etc), which is the behaviour we are
heavily relying on. In other words, if X.org driver "owns" the video
card, we force switching to the first VT (just as we pressed
CTRL-ALT-F1) so that X.org driver "releases" the video card before we
suspend console, assuming the current video card state is completely
saved by X.org driver. That way, we can just save the console state
and we don't need to worry about X.org or whatever. Conversely, when
we resume, we just restore the console state and switch VT (just as
we pressed ALT-F9) assuming X.org driver will restore the previous
state. If any X.org video drivers don't do it properly, we lose. I
guess you may be experiencing this problem. We may save/restore
"some" video memory contents but it is not a good idea because we can
easily clobber X.org driver's idea of current state.
Unfortunately, it is even possible some video drivers may not do it
any more as Linux people started moving this type of stuff out of
X.org drivers into Linux kernel and "old school" stuff (e.g., VT
switching from user land) is no longer maintained well or not
supported. :-(
Jung-uk Kim
More information about the freebsd-acpi
mailing list