lvds: reduced lvds resume time.

This commit is contained in:
ZHW
2013-09-26 10:07:54 +08:00
parent 6f09b4ba08
commit ff6ed9e159
3 changed files with 13 additions and 4 deletions

View File

@@ -757,8 +757,15 @@ int rk616_display_router_cfg(struct mfd_rk616 *rk616,rk_screen *screen,bool enab
if(ret < 0)
return ret;
ret = rk616_router_cfg(rk616);
ret = rk616_vif_cfg(rk616,hdmi_screen,0);
ret = rk616_vif_cfg(rk616,hdmi_screen,1);
/*
If wake up, does not execute the rk616_vif_cfg can save 50ms time
*/
if(rk616->resume != 1){
ret = rk616_vif_cfg(rk616,hdmi_screen,0);
ret = rk616_vif_cfg(rk616,hdmi_screen,1);
}
ret = rk616_scaler_cfg(rk616,screen);
ret = rk616_dither_cfg(rk616,screen,enable);
return 0;

View File

@@ -61,7 +61,6 @@ static int rk616_lvds_cfg(struct mfd_rk616 *rk616,rk_screen *screen)
ret = rk616->write_dev(rk616,CRU_LVDS_CON0,&val);
rk616_dbg(rk616->dev,"rk616 use single lvds channel.......\n");
}
}
@@ -132,7 +131,9 @@ static void rk616_lvds_late_resume(struct early_suspend *h)
{
struct rk616_lvds *lvds = container_of(h, struct rk616_lvds,early_suspend);
struct mfd_rk616 *rk616 = lvds->rk616;
rk616_lvds_init_cfg(rk616,lvds->screen);
rk616->resume = 1;
rk616_lvds_init_cfg(rk616,lvds->screen);
rk616->resume = 0;
}
#endif

View File

@@ -281,6 +281,7 @@ struct mfd_rk616 {
struct clk *mclk;
u64 pll0_rate;
u64 pll1_rate;
unsigned int resume;
struct dentry *debugfs_dir;
int (*read_dev)(struct mfd_rk616 *rk616,u16 reg,u32 *pval);
int (*write_dev)(struct mfd_rk616 *rk616,u16 reg,u32 *pval);