2005-10-17 17:46:14

by Bob Tracy

[permalink] [raw]
Subject: vesafb_blank() vs. Toshiba 730XCDT notebook

Apologies for not reporting this problem sooner... The system with
the problem doesn't get powered-up as often as it probably should.

Is there a way to disable or otherwise control the display blanking
feature that was added after 2.6.13? I've got a Toshiba notebook
(730XCDT -- Pentium 150MMX) for which I'm using the Vesa FB driver.
When the machine has been idle for some time and the driver attempts
to powerdown the display, rather than the display going blank, it goes
gray with several strange lines. When I hit the "shift" key or other-
wise wake up the display, the old video state is not fully restored:
the image is badly distorted (looks like video memory corruption --
moving the mouse pointer around causes the affected areas to refresh
properly) until I switch from X11 to a virtual console and then back
to X11.

Also, when I first go into X11, the display goes into a mode that has
the appearance of film melting in front of a hot projector lamp :-(.
In the background I see faint tile outlines. Finally, the display goes
into the proper mode and all is well until I leave the machine idle for
a few minutes as described above.

None of this behavior was present in 2.6.13: when I invoked "startx",
the display would simply go blank until the expected background image
(standard X11 moire) appeared. The first kernel I tried that has the
display problems is 2.6.14-rc1. I'm only seeing these problems on the
Toshiba: my other systems behave fine.

Thanks in advance for any help/guidance those in the know can provide.

--
-----------------------------------------------------------------------
Bob Tracy WTO + WIPO = DMCA? http://www.anti-dmca.org
[email protected]
-----------------------------------------------------------------------


2005-10-18 00:10:17

by Antonino A. Daplas

[permalink] [raw]
Subject: Re: vesafb_blank() vs. Toshiba 730XCDT notebook

Bob Tracy wrote:
> Apologies for not reporting this problem sooner... The system with
> the problem doesn't get powered-up as often as it probably should.
>
> Is there a way to disable or otherwise control the display blanking
> feature that was added after 2.6.13? I've got a Toshiba notebook
> (730XCDT -- Pentium 150MMX) for which I'm using the Vesa FB driver.
> When the machine has been idle for some time and the driver attempts
> to powerdown the display, rather than the display going blank, it goes
> gray with several strange lines. When I hit the "shift" key or other-
> wise wake up the display, the old video state is not fully restored:
> the image is badly distorted (looks like video memory corruption --
> moving the mouse pointer around causes the affected areas to refresh
> properly) until I switch from X11 to a virtual console and then back
> to X11.
>
> Also, when I first go into X11, the display goes into a mode that has
> the appearance of film melting in front of a hot projector lamp :-(.
> In the background I see faint tile outlines. Finally, the display goes
> into the proper mode and all is well until I leave the machine idle for
> a few minutes as described above.
>
> None of this behavior was present in 2.6.13: when I invoked "startx",
> the display would simply go blank until the expected background image
> (standard X11 moire) appeared. The first kernel I tried that has the
> display problems is 2.6.14-rc1. I'm only seeing these problems on the
> Toshiba: my other systems behave fine.
>
> Thanks in advance for any help/guidance those in the know can provide.
>

Can you try this patch first?

Signed-off-by: Antonino Daplas <[email protected]>
---

diff --git a/drivers/video/vesafb.c b/drivers/video/vesafb.c
--- a/drivers/video/vesafb.c
+++ b/drivers/video/vesafb.c
@@ -96,14 +96,14 @@ static int vesafb_blank(int blank, struc
int loop = 10000;
u8 seq = 0, crtc17 = 0;

- err = 0;
-
- if (blank) {
+ if (blank == FB_BLANK_POWERDOWN) {
seq = 0x20;
crtc17 = 0x00;
+ err = 0;
} else {
seq = 0x00;
crtc17 = 0x80;
+ err = (blank == FB_BLANK_UNBLANK) ? 0 : -EINVAL;
}

vga_wseq(NULL, 0x00, 0x01);

2005-10-18 02:42:29

by Bob Tracy

[permalink] [raw]
Subject: Re: vesafb_blank() vs. Toshiba 730XCDT notebook

Antonino A. Daplas wrote:
> Bob Tracy wrote:
> > (Toshiba laptop display problem -- vesafb driver blanking).
>
> Can you try this patch first?
>
> Signed-off-by: Antonino Daplas <[email protected]>
>
> diff --git a/drivers/video/vesafb.c b/drivers/video/vesafb.c
> --- a/drivers/video/vesafb.c
> +++ b/drivers/video/vesafb.c
> @@ -96,14 +96,14 @@ static int vesafb_blank(int blank, struc
> (...)

That did the trick. Thanks for the quick turnaround!

--
-----------------------------------------------------------------------
Bob Tracy WTO + WIPO = DMCA? http://www.anti-dmca.org
[email protected]
-----------------------------------------------------------------------