From 8145d31536233294ba9e7505bb0dbc6318f9e239 Mon Sep 17 00:00:00 2001 From: zyw <zyw@rock-chips.com> Date: Mon, 29 Aug 2011 15:28:04 +0800 Subject: [PATCH] update fb for close win0 when overlay open, close win1 when overlay close --- drivers/video/rk29_fb.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/drivers/video/rk29_fb.c b/drivers/video/rk29_fb.c index 59898681b122..fdba47c940a7 100755 --- a/drivers/video/rk29_fb.c +++ b/drivers/video/rk29_fb.c @@ -1007,11 +1007,14 @@ static int win0_blank(int blank_mode, struct fb_info *info) { case FB_BLANK_UNBLANK: LcdMskReg(inf, SYS_CONFIG, m_W0_ENABLE, v_W0_ENABLE(1)); - LcdWrReg(inf, REG_CFG_DONE, 0x01); + LcdWrReg(inf, REG_CFG_DONE, 0x01); break; + case FB_BLANK_NORMAL: + LcdMskReg(inf, SYS_CONFIG, m_W0_ENABLE, v_W0_ENABLE(0)); + break; default: LcdMskReg(inf, SYS_CONFIG, m_W0_ENABLE, v_W0_ENABLE(0)); - LcdWrReg(inf, REG_CFG_DONE, 0x01); + LcdWrReg(inf, REG_CFG_DONE, 0x01); #ifdef CONFIG_DDR_RECONFIG msleep(40); #endif @@ -1180,12 +1183,17 @@ static int win1_blank(int blank_mode, struct fb_info *info) { case FB_BLANK_UNBLANK: LcdMskReg(inf, SYS_CONFIG, m_W1_ENABLE, v_W1_ENABLE(1)); + LcdWrReg(inf, REG_CFG_DONE, 0x01); break; + case FB_BLANK_NORMAL: + LcdMskReg(inf, SYS_CONFIG, m_W1_ENABLE, v_W1_ENABLE(0)); + break; default: LcdMskReg(inf, SYS_CONFIG, m_W1_ENABLE, v_W1_ENABLE(0)); + LcdWrReg(inf, REG_CFG_DONE, 0x01); break; } - LcdWrReg(inf, REG_CFG_DONE, 0x01); + mcu_refresh(inf); return 0; @@ -2163,9 +2171,9 @@ int fb1_open(struct fb_info *info, int user) return -EACCES; } else { par->refcount++; + win0_blank(FB_BLANK_NORMAL, info); fb0_set_par(inf->fb0); - fb0_pan_display(&inf->fb0->var, inf->fb0); - win0_blank(FB_BLANK_POWERDOWN, info); + rk29fb_notify(inf, RK29FB_EVENT_FB1_ON); return 0; } @@ -2187,12 +2195,8 @@ int fb1_release(struct fb_info *info, int user) inf->video_mode = 0; par->par_seted = 0; par->addr_seted = 0; - //win0_blank(FB_BLANK_POWERDOWN, info); + win1_blank(FB_BLANK_NORMAL, info); fb0_set_par(inf->fb0); - fb0_pan_display(&inf->fb0->var, inf->fb0); - win1_blank(FB_BLANK_POWERDOWN, info); - // wait for lcdc stop access memory - //msleep(50); // unmap memory info->screen_base = 0; @@ -2601,7 +2605,7 @@ static void rk29fb_early_suspend(struct early_suspend *h) if(inf->clk){ clk_disable(inf->aclk); } - clk_disable(inf->pd_display); + //clk_disable(inf->pd_display); inf->in_suspend = 1; } @@ -2626,7 +2630,7 @@ static void rk29fb_early_resume(struct early_suspend *h) { inf->in_suspend = 0; fbprintk(">>>>>> enable the lcdc clk! \n"); - clk_enable(inf->pd_display); + // clk_enable(inf->pd_display); clk_enable(inf->aclk_disp_matrix); clk_enable(inf->hclk_cpu_display); clk_enable(inf->clk); -- 2.34.1