lcdc rk3188: fix panic temporarily
authoryxj <yxj@rock-chips.com>
Tue, 18 Mar 2014 09:47:32 +0000 (17:47 +0800)
committeryxj <yxj@rock-chips.com>
Tue, 18 Mar 2014 09:48:20 +0000 (17:48 +0800)
drivers/video/rockchip/lcdc/rk3188_lcdc.c
drivers/video/rockchip/lcdc/rk3288_lcdc.c
drivers/video/rockchip/rk_fb.c
include/linux/rk_fb.h

index 18c20311265e85694ee0c1b17fbebb75f3e4f341..b10d925436c21d2614a6d11e6cf109ace6b08889 100755 (executable)
@@ -1467,6 +1467,8 @@ int rk3188_lcdc_poll_vblank(struct rk_lcdc_driver *dev_drv)
 
        return ret;
 }
+
+
 static int rk3188_lcdc_get_dsp_addr(struct rk_lcdc_driver *dev_drv,unsigned int *dsp_addr)
 {
        struct lcdc_device *lcdc_dev =
@@ -1479,6 +1481,14 @@ static int rk3188_lcdc_get_dsp_addr(struct rk_lcdc_driver *dev_drv,unsigned int
        return 0;
 }
 
+static int rk3188_lcdc_cfg_done(struct rk_lcdc_driver *dev_drv)
+{
+       struct lcdc_device *lcdc_dev = container_of(dev_drv, 
+                                       struct lcdc_device, driver);
+       lcdc_cfg_done(lcdc_dev);
+       return 0;
+}
+
 
 static struct rk_lcdc_win lcdc_win[] = {
        [0] = {
@@ -1515,6 +1525,7 @@ static struct rk_lcdc_drv_ops lcdc_drv_ops = {
        .dpi_win_sel = rk3188_lcdc_dpi_win_sel,
        .dpi_status = rk3188_lcdc_dpi_status,
        .get_dsp_addr = rk3188_lcdc_get_dsp_addr,
+       .cfg_done       = rk3188_lcdc_cfg_done,
 };
 
 static irqreturn_t rk3188_lcdc_isr(int irq, void *dev_id)
index 705a9f7daa2226d4dc6c037b955dd30f9692921f..f1b03c7366efd4422c1b2c10ac151c4caf71851b 100755 (executable)
@@ -2964,7 +2964,7 @@ static struct rk_lcdc_drv_ops lcdc_drv_ops = {
        .set_dsp_bcsh_bcs       = rk3288_lcdc_set_bcsh_bcs,
        .dump_reg               = rk3288_lcdc_reg_dump,
        .mmu_en                 = rk3288_lcdc_mmu_en,
-       .config_done            = rk3288_lcdc_config_done,
+       .cfg_done               = rk3288_lcdc_config_done,
 };
 static int rk3288_lcdc_parse_irq(struct lcdc_device *lcdc_dev,unsigned int reg_val)
 {
index eddbe281c530e31a5958c9bc1c3bfa6133883f49..3a38c611b79687c6798ae08e8d9dc47181412473 100755 (executable)
@@ -773,7 +773,7 @@ static int rk_fb_rotate(struct fb_info *dst_info,
        #endif
                return 0;
 }
-static int rk_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
+static int rk_fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
 {
        struct rk_fb *rk_fb = dev_get_drvdata(info->device);
        struct rk_lcdc_driver *dev_drv  = (struct rk_lcdc_driver *)info->par;
@@ -920,7 +920,7 @@ static int rk_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
        if (video_data_to_mirroring)
                video_data_to_mirroring(info, NULL);
        #endif
-       dev_drv->ops->config_done(dev_drv);
+       dev_drv->ops->cfg_done(dev_drv);
        return 0;
 }
 
@@ -1129,7 +1129,7 @@ static void rk_fb_update_reg(struct rk_lcdc_driver * dev_drv,struct rk_fb_reg_da
                dev_drv->ops->pan_display(dev_drv,i);
        }
        dev_drv->ops->ovl_mgr(dev_drv, 0, 1);
-       dev_drv->ops->config_done(dev_drv);
+       dev_drv->ops->cfg_done(dev_drv);
 
 #if 0
        for(i=0;i<2;i++){
@@ -1727,7 +1727,6 @@ static ssize_t rk_fb_read(struct fb_info *info, char __user *buf,
        struct rk_lcdc_driver *dev_drv = (struct rk_lcdc_driver *)info->par;
        struct rk_lcdc_win *win = NULL;
        int win_id = 0;
-       int list_empty=0;
 
        win_id = dev_drv->ops->fb_get_win_id(dev_drv, info->fix.id);
        if (win_id < 0)
@@ -2093,7 +2092,7 @@ static struct fb_ops fb_ops = {
        .fb_set_par     = rk_fb_set_par,
        .fb_blank       = rk_fb_blank,
        .fb_ioctl       = rk_fb_ioctl,
-       .fb_pan_display = rk_pan_display,
+       .fb_pan_display = rk_fb_pan_display,
        .fb_read        = rk_fb_read,
        .fb_write       = rk_fb_write,
        .fb_setcolreg   = fb_setcolreg,
@@ -2183,7 +2182,7 @@ EXPORT_SYMBOL(rk_get_fb);
 void rk_direct_fb_show(struct fb_info *fbi)
 {
        rk_fb_set_par(fbi);
-       rk_pan_display(&fbi->var, fbi);
+       rk_fb_pan_display(&fbi->var, fbi);
 }
 EXPORT_SYMBOL(rk_direct_fb_show);
 
index 4ba0d31ba5411dd39543cf6e357a3d81cc900d6a..30221d03d9e8d533c094d4e080a5035bda70d329 100755 (executable)
@@ -374,7 +374,7 @@ struct rk_lcdc_drv_ops {
        int (*set_dsp_bcsh_bcs)(struct rk_lcdc_driver *dev_drv,int bri,int con,int sat);
        int (*dump_reg) (struct rk_lcdc_driver * dev_drv);
        int (*mmu_en) (struct rk_lcdc_driver * dev_drv,bool en);
-       int (*config_done) (struct rk_lcdc_driver * dev_drv);
+       int (*cfg_done) (struct rk_lcdc_driver * dev_drv);
 };
 
 struct rk_fb_area_par {