Re: [Linux-fbdev-devel] [PATCH] fbdev: Fix usage of blank value passedto fb_blank

From: Antonino A. Daplas
Date: Sun Jan 29 2006 - 18:33:16 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/