fbdev: sh_mobile_meram: Fix MExxCTL register save on runtime PM suspend
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Wed, 13 Jul 2011 10:13:47 +0000 (12:13 +0200)
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Fri, 19 Aug 2011 06:22:44 +0000 (08:22 +0200)
To reset the ICB on resume the MExxCTL register needs to be OR'ed with
MExxCTL_WBF | MExxCTL_WF | MExxCTL_RF, no set to that value. Fix this.

This fixes corruption at the bottom of the display when resuming from
runtime PM.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
drivers/video/sh_mobile_meram.c

index 25a7118a40f81feef0e53ab07857d1e6f1789af8..7ba6dce459b2ee97f5dc0db9fa2491e5c612811b 100644 (file)
@@ -549,7 +549,7 @@ static int sh_mobile_meram_runtime_suspend(struct device *dev)
                                meram_read_icb(priv->base, j, icb_regs[k]);
                        /* Reset ICB on resume */
                        if (icb_regs[k] == MExxCTL)
-                               priv->icb_saved_regs[j * ICB_REGS_SIZE + k] =
+                               priv->icb_saved_regs[j * ICB_REGS_SIZE + k] |=
                                        MExxCTL_WBF | MExxCTL_WF | MExxCTL_RF;
                }
        }