]> Pileus Git - ~andy/linux/commitdiff
OMAP: DSS2: clear spurious SYNC_LOST_DIGIT interrupts
authorVille Syrjälä <ville.syrjala@nokia.com>
Thu, 4 Mar 2010 23:13:11 +0000 (01:13 +0200)
committerTomi Valkeinen <tomi.valkeinen@nokia.com>
Tue, 3 Aug 2010 12:18:45 +0000 (15:18 +0300)
When DSS transitions from off mode to on VENC may generate a spurious
SYNC_LOST_DIGIT error. Just ack it when restoring the context. Also
restore IRQENABLE last to avoid triggering interrupts before the
context is fully restored.

Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
drivers/video/omap2/dss/dispc.c

index e777e352dbcd8f4050a202323fadfebe2828c4d7..b8c16034f1eaabe847872a06202d56336d72039a 100644 (file)
@@ -335,7 +335,7 @@ void dispc_save_context(void)
 void dispc_restore_context(void)
 {
        RR(SYSCONFIG);
-       RR(IRQENABLE);
+       /*RR(IRQENABLE);*/
        /*RR(CONTROL);*/
        RR(CONFIG);
        RR(DEFAULT_COLOR0);
@@ -472,6 +472,15 @@ void dispc_restore_context(void)
 
        /* enable last, because LCD & DIGIT enable are here */
        RR(CONTROL);
+
+       /* clear spurious SYNC_LOST_DIGIT interrupts */
+       dispc_write_reg(DISPC_IRQSTATUS, DISPC_IRQ_SYNC_LOST_DIGIT);
+
+       /*
+        * enable last so IRQs won't trigger before
+        * the context is fully restored
+        */
+       RR(IRQENABLE);
 }
 
 #undef SR