]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
video: s3c-fb: clear SHADOWCON register when clearing hardware window registers
authorJingoo Han <jg1.han@samsung.com>
Mon, 11 Jun 2012 02:26:41 +0000 (11:26 +0900)
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Wed, 13 Jun 2012 17:34:16 +0000 (17:34 +0000)
All bits of SHADOWCON register should be cleared when clearing
hardware window registers; however, some bits of SHADOWCON register
are not cleared previously.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
drivers/video/s3c-fb.c

index 5f9d8e69029ee2e8ab3be25b8c1bd348c8cf49fb..b5c29399a5ee3fc83e14200e4442dab54c6a6970 100644 (file)
@@ -1348,8 +1348,14 @@ static void s3c_fb_clear_win(struct s3c_fb *sfb, int win)
        writel(0, regs + VIDOSD_A(win, sfb->variant));
        writel(0, regs + VIDOSD_B(win, sfb->variant));
        writel(0, regs + VIDOSD_C(win, sfb->variant));
-       reg = readl(regs + SHADOWCON);
-       writel(reg & ~SHADOWCON_WINx_PROTECT(win), regs + SHADOWCON);
+
+       if (sfb->variant.has_shadowcon) {
+               reg = readl(sfb->regs + SHADOWCON);
+               reg &= ~(SHADOWCON_WINx_PROTECT(win) |
+                       SHADOWCON_CHx_ENABLE(win) |
+                       SHADOWCON_CHx_LOCAL_ENABLE(win));
+               writel(reg, sfb->regs + SHADOWCON);
+       }
 }
 
 static int __devinit s3c_fb_probe(struct platform_device *pdev)