rk fb: add rk_fb_trsm_ops
authoryxj <yxj@rock-chips.com>
Thu, 13 Mar 2014 03:18:00 +0000 (11:18 +0800)
committeryxj <yxj@rock-chips.com>
Thu, 13 Mar 2014 03:27:52 +0000 (11:27 +0800)
drivers/video/rockchip/lcdc/rk3188_lcdc.c
drivers/video/rockchip/rk_fb.c

index 28229cb82d0cc6b44a8a259884f515dcf1a62d3c..18c20311265e85694ee0c1b17fbebb75f3e4f341 100755 (executable)
@@ -553,7 +553,8 @@ static int rk3188_load_screen(struct rk_lcdc_driver *dev_drv, bool initscreen)
        screen->ft = 1000 / fps;
        dev_info(lcdc_dev->dev, "%s: dclk:%lu>>fps:%d ",
                 lcdc_dev->driver.name, clk_get_rate(lcdc_dev->dclk), fps);
-
+       if (dev_drv->trsm_ops && dev_drv->trsm_ops->enable)
+               dev_drv->trsm_ops->enable();
        if (screen->init)
                screen->init();
 
@@ -1038,7 +1039,9 @@ static int rk3188_lcdc_early_suspend(struct rk_lcdc_driver *dev_drv)
        
        dev_drv->suspend_flag = 1;
        flush_kthread_worker(&dev_drv->update_regs_worker);
-       
+
+       if (dev_drv->trsm_ops && dev_drv->trsm_ops->disable)
+               dev_drv->trsm_ops->disable();
        spin_lock(&lcdc_dev->reg_lock);
        if (likely(lcdc_dev->clk_on)) {
                lcdc_msk_reg(lcdc_dev, DSP_CTRL1, m_BLANK_EN,
@@ -1102,7 +1105,8 @@ static int rk3188_lcdc_early_resume(struct rk_lcdc_driver *dev_drv)
 
                spin_unlock(&lcdc_dev->reg_lock);
        }
-
+       if (dev_drv->trsm_ops && dev_drv->trsm_ops->enable)
+               dev_drv->trsm_ops->enable();
        return 0;
 }
 
index a2b3d32f0c3a8c838d4f3ef426168f878c33234a..ce7ebe16a329f580730ab417ebcff4c8008cc4c1 100755 (executable)
@@ -2385,6 +2385,7 @@ static int init_lcdc_device_driver(struct rk_fb *rk_fb,
        rk_disp_pwr_ctr_parse_dt(dev_drv);
        if (dev_drv->prop == PRMRY)
                rk_fb_get_prmry_screen(screen);
+       dev_drv->trsm_ops = rk_fb_trsm_ops_get(screen->type);
 
        return 0;
 }