Messages in this thread | | | Date | Mon, 30 Jan 2006 07:34:38 +0800 | From | "Antonino A. Daplas" <> | Subject | Re: [Linux-fbdev-devel] [PATCH] fbdev: Fix usage of blank value passed to fb_blank |
| |
Ville Syrjälä wrote: > On Sun, Jan 29, 2006 at 10:18:19AM +0800, Antonino A. Daplas wrote: >> diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c >> index d2dede6..5bed0fb 100644 >> --- a/drivers/video/fbmem.c >> +++ b/drivers/video/fbmem.c >> @@ -843,6 +843,19 @@ fb_blank(struct fb_info *info, int blank >> { >> int ret = -EINVAL; >> >> + /* >> + * The framebuffer core supports 5 blanking levels (FB_BLANK), whereas >> + * VESA defined only 4. The extra level, FB_BLANK_NORMAL, is a >> + * console invention and is not related to power management. >> + * Unfortunately, fb_blank callers, especially X, pass VESA constants >> + * leading to undefined behavior. > > Since when? X.Org uses numbers 0,2,3,4 which match the FB_BLANK > constants not the VESA constants. >
How about if we silently convert FB_BLANK_NORMAL requests to FB_BLANK_VSYNC_SUSPEND, would that work?
Tony
PS: Soft blanking is very difficult, if not impossible, to implement correctly kernel-side, so we can either fail (current code), silently fail but return success, or convert to the next blank level. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |