From 4cdbb5cf1f13dd76c1b5d7d75312377e32da509e Mon Sep 17 00:00:00 2001 From: zyw Date: Thu, 7 Jul 2011 17:14:02 +0800 Subject: [PATCH] fix hdmi bug: display disordered, Supplement --- drivers/video/rk29_fb.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/video/rk29_fb.c b/drivers/video/rk29_fb.c index 791295f57bbb..7ea52aab56c9 100755 --- a/drivers/video/rk29_fb.c +++ b/drivers/video/rk29_fb.c @@ -627,7 +627,7 @@ void load_screen(struct fb_info *info, bool initscreen) // clk_disable(inf->hclk_cpu_display); // clk_disable(inf->clk); - ret = clk_set_parent(inf->aclk, inf->aclk_parent); + fbprintk(">>>>>> set lcdc dclk need %d HZ, clk_parent = %d hz ret =%d\n ", screen->pixclock, screen->lcdc_aclk, ret); @@ -636,20 +636,22 @@ void load_screen(struct fb_info *info, bool initscreen) { printk(KERN_ERR ">>>>>> set lcdc dclk failed\n"); } - - if(screen->lcdc_aclk){ - aclk_rate = screen->lcdc_aclk; - } - ret = clk_set_rate(inf->aclk, aclk_rate); - if(ret){ - printk(KERN_ERR ">>>>>> set lcdc aclk failed\n"); + + if(initscreen) + { + ret = clk_set_parent(inf->aclk, inf->aclk_parent); + if(screen->lcdc_aclk){ + aclk_rate = screen->lcdc_aclk; + } + ret = clk_set_rate(inf->aclk, aclk_rate); + if(ret){ + printk(KERN_ERR ">>>>>> set lcdc aclk failed\n"); + } + clk_enable(inf->aclk); } - // clk_enable(inf->aclk_ddr_lcdc); // clk_enable(inf->aclk_disp_matrix); - // clk_enable(inf->hclk_cpu_display); - if(initscreen) - clk_enable(inf->aclk); + // clk_enable(inf->hclk_cpu_display); // clk_enable(inf->clk); clk_enable(inf->dclk); -- 2.34.1