Re: vesafb_blank() vs. Toshiba 730XCDT notebook

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux