diff -urN linux-2.6.28.2-0rig//drivers/video/atmel_mpopfb.c linux-2.6.28.2/drivers/video/atmel_mpopfb.c
--- linux-2.6.28.2-0rig//drivers/video/atmel_mpopfb.c	2009-01-29 09:41:04.000000000 +0100
+++ linux-2.6.28.2/drivers/video/atmel_mpopfb.c	2009-01-29 09:43:46.000000000 +0100
@@ -315,6 +315,10 @@
 static void atmel_mpopfb_start(struct atmel_mpopfb_info *sinfo)
 {
 	if (!sinfo->running) {
+		unsigned int line_cache_disable =
+			sinfo->baseimg_info.line_cache_disable ?
+			ATMEL_MPOP_CR_CACHEDIS_MASK : 0;
+
 		dev_dbg(sinfo->info->device, "  * Starting MPOP.\n");
 
 		/* Enable all error interrupts. */
@@ -325,9 +329,9 @@
 		 * reading from the slave interface it will start
 		 * generating a frame.
 		 */
-		mpop_writel(sinfo, ATMEL_MPOP_CR,
-			    ATMEL_MPOP_CR_EN_MASK
-			    /*| ATMEL_MPOP_CR_OUT_BGR_MASK */ );
+		mpop_writel(sinfo, ATMEL_MPOP_CR, ATMEL_MPOP_CR_EN_MASK
+				| line_cache_disable
+				| ATMEL_MPOP_CR_OUT_BGR_MASK);
 
 		sinfo->running = 1;
 	}
diff -urN linux-2.6.28.2-0rig//include/linux/atmel_mpopfb.h linux-2.6.28.2/include/linux/atmel_mpopfb.h
--- linux-2.6.28.2-0rig//include/linux/atmel_mpopfb.h	2009-01-29 09:41:04.000000000 +0100
+++ linux-2.6.28.2/include/linux/atmel_mpopfb.h	2009-01-29 09:43:46.000000000 +0100
@@ -42,9 +42,11 @@
 	unsigned xsize;
 	unsigned ysize;
 
-	/* Signal that we should flip the video. */
+	/* Signal for flipping the video. */
 	int flip;
 
+	/* Signal for disabling the line cache. */
+	int line_cache_disable;
 };
 
 enum atmel_mpopfb_overlay_type {
