aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonino A. Daplas <adaplas@gmail.com>2005-10-18 15:59:52 +0800
committerLinus Torvalds <torvalds@g5.osdl.org>2005-10-18 08:43:29 -0700
commitbb7e257ef8d8ba43cab356aa1cc1b20d0106d45f (patch)
tree3e113d6593197b7d3c77d5938381d7bb793b7f3c
parentd846a92e4ec26112fbe41c4e45ddd9119cd74cda (diff)
[PATCH] vesafb: Fix display corruption on display blank
Reported by: Bob Tracy <rct@gherkin.frus.com> "...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..." vesafb recently added a blank method which has only 2 states, powerup and powerdown. The powerdown state is used for all blanking levels, but in his case, powerdown does not work correctly for higher levels of display powersaving. Thus, for intermediate power levels, use software blanking, and use only hardware blanking for an explicit powerdown. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/video/vesafb.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/video/vesafb.c b/drivers/video/vesafb.c
index 1ca80264c7b..b1243da55fc 100644
--- a/drivers/video/vesafb.c
+++ b/drivers/video/vesafb.c
@@ -96,14 +96,14 @@ static int vesafb_blank(int blank, struct fb_info *info)
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);