Thread (28 messages) 28 messages, 5 authors, 2004-11-06

Re: [PATCH] fbdev: workaround for broken X servers

From: Antonino A. Daplas <hidden>
Date: 2004-11-06 02:03:42

On Saturday 06 November 2004 08:38, Benjamin Herrenschmidt wrote:
On Fri, 2004-11-05 at 20:55 +0800, Antonino A. Daplas wrote:
quoted
And make it black is usually done in software (by memsetting the screen
with the black color).

So why not this:  In fbcon_blank(), if the blank parameter is:

0 - unblank the screen, and call info->fbops->fb_blank(VESA_NO_BLANKING),
     then return a nonzero value to force a redraw.
1,2,3,4 - clear the screen with all black
2,3,4 - call info->fbops->fb_blank(blank - 1);

Similarly, we can do the same thing in fbmem.c:fb_blank(), but without
the software blanking.

Drivers will just need to follow the VESA_* defines in fb.h (which
happens to be also defined in console.h)
Ah... so radeonfb is correct then, and fb_blank() is not ? X is
definitely passing +1 values it seems.
Well, depends on what approach is adopted:

Most drivers do this:
if (blank)
	switch(blank-1) {
	...
	}

Which means fb_blank() and fbcon_blank() should pass the 
blank parameter to info->fbops->fb_blank() unchanged.

If we adopt the approach of passing (blank -1) to 
info->fbops->fb_blank(), then drivers simply do a:

switch(blank) {
...
}

Currently, fbcon_blank() does the first method (pass blank unchanged),
which means radeonfb is wrong. Adopting the second method will make
radeonfb do the right thing, but will require changes to a lot of drivers.

So, what will it be then?

Tony




-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help