summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/s3c-fb.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
index 9c46f954c61..f9d0170b241 100644
--- a/drivers/video/s3c-fb.c
+++ b/drivers/video/s3c-fb.c
@@ -845,9 +845,6 @@ static void s3c_fb_clear_win(struct s3c_fb *sfb, int win)
void __iomem *regs = sfb->regs;
writel(0, regs + WINCON(win));
- writel(0xffffff, regs + WxKEYCONy(win, 0));
- writel(0xffffff, regs + WxKEYCONy(win, 1));
-
writel(0, regs + VIDOSD_A(win));
writel(0, regs + VIDOSD_B(win));
writel(0, regs + VIDOSD_C(win));
@@ -920,6 +917,12 @@ static int __devinit s3c_fb_probe(struct platform_device *pdev)
for (win = 0; win < S3C_FB_MAX_WIN; win++)
s3c_fb_clear_win(sfb, win);
+ /* initialise colour key controls */
+ for (win = 0; win < (S3C_FB_MAX_WIN - 1); win++) {
+ writel(0xffffff, sfb->regs + WxKEYCONy(win, 0));
+ writel(0xffffff, sfb->regs + WxKEYCONy(win, 1));
+ }
+
/* we have the register setup, start allocating framebuffers */
for (win = 0; win < S3C_FB_MAX_WIN; win++) {
@@ -1020,6 +1023,11 @@ static int s3c_fb_resume(struct platform_device *pdev)
for (win_no = 0; win_no < S3C_FB_MAX_WIN; win_no++)
s3c_fb_clear_win(sfb, win_no);
+ for (win_no = 0; win_no < S3C_FB_MAX_WIN - 1; win_no++) {
+ writel(0xffffff, sfb->regs + WxKEYCONy(win_no, 1));
+ writel(0xffffff, sfb->regs + WxKEYCONy(win_no, 1));
+ }
+
/* restore framebuffers */
for (win_no = 0; win_no < S3C_FB_MAX_WIN; win_no++) {
win = sfb->windows[win_no];