diff -urN -X /home/arm/dontdiff_tml_arm /home/download/kernels/linux-2.4.19-rmk2-vanilla/drivers/video/fbcon.c linux-2.4.19-rmk2/drivers/video/fbcon.c
diff -urN -X /home/arm/dontdiff_tml_arm /home/download/kernels/linux-2.4.19-rmk2-vanilla/drivers/video/fbcon.c linux-2.4.19-rmk2/drivers/video/fbcon.c
--- /home/download/kernels/linux-2.4.19-rmk2-vanilla/drivers/video/fbcon.c	2002-10-02 22:05:15.000000000 -0700
+++ linux-2.4.19-rmk2/drivers/video/fbcon.c	2002-10-02 22:07:30.000000000 -0700
@@ -2344,6 +2344,56 @@
 	    done = 1;
 	}
 #endif
+#if defined(CONFIG_FBCON_CFB2)
+	if (depth == 2 && p->type == FB_TYPE_PACKED_PIXELS) {
+	    /* 
+	     * Depth 2, created for Psion 5mx, not very efficient
+	     * not tested on other platforms
+	     */
+	    u8 arrv, bit1, bit2, outv, prev, scnd;
+	    arrv = 0;
+	    outv = 0;
+	    scnd = 0;
+	    src = logo;
+	    for( y1 = 0; y1 < LOGO_H; y1++ ) {
+		dst = fb + y1*line + x/8;
+		for( x1 = 0; x1 < LOGO_W/2; x1++ ) {
+			arrv = *src++;
+			bit1 = (arrv / 16);
+			bit2 = arrv & 0xf;
+			/* Add 2 to make rounding work */
+			bit1 = (bit1 + 2) / 4;
+#ifndef __LITTLE_ENDIAN
+			bit1 = (bit1 << 2);
+#endif
+			/* Add 2 to  make rounding work */
+			bit2 = (bit2 + 2) / 4;
+#ifdef __LITTLE_ENDIAN
+			bit2 = (bit2 << 2);
+#endif
+			outv = bit1 | bit2;
+			/* We write out only every second time */
+			if (scnd >= 1) {
+#ifdef __LITTLE_ENDIAN
+				outv = (outv * 16);
+#endif
+				outv = prev + outv;
+				/* Write out previous and current value */
+				fb_writeb (outv, dst++);
+				prev = 0;
+				scnd = 0;
+			} else {
+				prev = outv;
+#ifndef __LITTLE_ENDIAN
+				prev = (prev * 16);
+#endif
+				scnd++;
+			}
+		}
+	    }
+	    done = 1;
+	}
+#endif
 #if defined(CONFIG_FBCON_AFB) || defined(CONFIG_FBCON_ILBM) || \
     defined(CONFIG_FBCON_IPLAN2P2) || defined(CONFIG_FBCON_IPLAN2P4) || \
     defined(CONFIG_FBCON_IPLAN2P8)
