From 826dcd4342b52ff2134bb4aa83916745a2b380c5 Mon Sep 17 00:00:00 2001 From: yzq Date: Thu, 20 Oct 2011 17:40:44 +0800 Subject: [PATCH] rk29fb:fix problem :UI jitter when carema DV DC switch --- drivers/video/rk29_fb.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/video/rk29_fb.c b/drivers/video/rk29_fb.c index 6d1666484658..350c227af0b5 100755 --- a/drivers/video/rk29_fb.c +++ b/drivers/video/rk29_fb.c @@ -263,6 +263,7 @@ static volatile int idle_condition = 1; //1:idel, 0:busy static DECLARE_WAIT_QUEUE_HEAD(wq); static int wq_condition = 0; static int wq_condition2 = 0; +static int fb1_open_init = 0; #if ANDROID_USE_THREE_BUFS static int new_frame_seted = 1; #endif @@ -1317,7 +1318,7 @@ static int win1_set_par(struct fb_info *info) addr = fix->smem_start + par->y_offset; xres_virtual = var->xres_virtual; //virtual screen size } - LcdMskReg(inf, SYS_CONFIG, m_W1_ENABLE|m_W1_FORMAT, v_W1_ENABLE(1)|v_W1_FORMAT(par->format)); + LcdMskReg(inf, SYS_CONFIG, m_W1_ENABLE|m_W1_FORMAT, v_W1_ENABLE(fb1_open_init?0:1)|v_W1_FORMAT(par->format)); xpos += (screen->left_margin + screen->hsync_len); ypos += (screen->upper_margin + screen->vsync_len); @@ -2291,6 +2292,7 @@ int fb1_open(struct fb_info *info, int user) { struct rk29fb_inf *inf = dev_get_drvdata(info->device); struct win0_par *par = info->par; + struct rk29fb_screen *screen = inf->cur_screen; fbprintk(">>>>>> %s : %s \n", __FILE__, __FUNCTION__); @@ -2310,8 +2312,10 @@ int fb1_open(struct fb_info *info, int user) } else { par->refcount++; win0_blank(FB_BLANK_NORMAL, info); + if(screen->x_res<=1280) + fb1_open_init=1; fb0_set_par(inf->fb0); - + fb1_open_init=0; rk29fb_notify(inf, RK29FB_EVENT_FB1_ON); return 0; } -- 2.34.1