[PATCH 09/18] Xfbdev: Treat 1 bpp pseudocolor as monochrome

Geert Uytterhoeven geert at linux-m68k.org
Wed Mar 27 06:20:42 PDT 2013


miCreateDefColormap() only preallocates black and white pixels if
depth > 1.

Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
---
 hw/kdrive/fbdev/fbdev.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/hw/kdrive/fbdev/fbdev.c b/hw/kdrive/fbdev/fbdev.c
index 0082575..ebbfeb9 100644
--- a/hw/kdrive/fbdev/fbdev.c
+++ b/hw/kdrive/fbdev/fbdev.c
@@ -216,11 +216,13 @@ fbdevScreenInitialize(KdScreenInfo * screen, FbdevScrPriv * scrpriv)
         screen->fb.visuals = (1 << StaticGray);
         break;
     case FB_VISUAL_PSEUDOCOLOR:
-        if (gray) {
-            screen->fb.visuals = (1 << StaticGray);
+        screen->fb.visuals = (1 << StaticGray);
+        if (priv->var.bits_per_pixel == 1) {
+            /* Override to monochrome, to have preallocated black/white */
+            priv->fix.visual = FB_VISUAL_MONO01;
+        } else if (gray) {
             /* could also support GrayScale, but what's the point? */
-        }
-        else {
+        } else {
             screen->fb.visuals = ((1 << StaticGray) |
                                   (1 << GrayScale) |
                                   (1 << StaticColor) |
-- 
1.7.0.4



More information about the xorg-devel mailing list