Xfbdev: Wire up Atari iplan2p4 and iplan2p8 support
authorGeert Uytterhoeven <geert@linux-m68k.org>
Sun, 10 Mar 2013 16:17:26 +0000 (17:17 +0100)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Thu, 18 Apr 2013 11:10:26 +0000 (13:10 +0200)
Add support for Atari-style interleaved bitplanes, with 2 bytes interleave
and 4 or 8 bits per pixel.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
hw/kdrive/fbdev/fbdev.c

index 52dfbf5..40747fe 100644 (file)
@@ -439,7 +439,24 @@ fbdevSetShadow(ScreenPtr pScreen)
         break;
 
     case FB_TYPE_INTERLEAVED_PLANES:
-        FatalError("Interleaved bitplanes are not yet supported\n");
+        if (priv->fix.type_aux == 2) {
+            switch (priv->var.bits_per_pixel) {
+            case 4:
+                update = shadowUpdateIplan2p4;
+                break;
+
+            case 8:
+                update = shadowUpdateIplan2p8;
+                break;
+
+            default:
+                FatalError("Atari interleaved bitplanes with bpp %u are not yet supported\n",
+                           priv->var.bits_per_pixel);
+            }
+        } else {
+            FatalError("Interleaved bitplanes with interleave %u are not yet supported\n",
+                       priv->fix.type_aux);
+        }
         break;
 
     case FB_TYPE_TEXT: