Re: vesafb_blank() vs. Toshiba 730XCDT notebook

From: Antonino A. Daplas
Date: Mon Oct 17 2005 - 19:10:32 EST


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 <adaplas@xxxxxxx>
---

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);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/