On Mon, 30 Jan 2006, Antonino A. Daplas wrote:
Ville Syrj�l� wrote:
quoted
On Sun, Jan 29, 2006 at 10:18:19AM +0800, Antonino A. Daplas wrote:
quoted
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?
Do all (old, pre-VESA) monitors like it when vsync goes away?
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds