From: yxj Date: Tue, 18 Mar 2014 09:47:32 +0000 (+0800) Subject: lcdc rk3188: fix panic temporarily X-Git-Tag: firefly_0821_release~6023 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=cdfa5a1fdcfa397f3a6c33c06269b3e0b7ffbc32;p=firefly-linux-kernel-4.4.55.git lcdc rk3188: fix panic temporarily --- diff --git a/drivers/video/rockchip/lcdc/rk3188_lcdc.c b/drivers/video/rockchip/lcdc/rk3188_lcdc.c index 18c20311265e..b10d925436c2 100755 --- a/drivers/video/rockchip/lcdc/rk3188_lcdc.c +++ b/drivers/video/rockchip/lcdc/rk3188_lcdc.c @@ -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) diff --git a/drivers/video/rockchip/lcdc/rk3288_lcdc.c b/drivers/video/rockchip/lcdc/rk3288_lcdc.c index 705a9f7daa22..f1b03c7366ef 100755 --- a/drivers/video/rockchip/lcdc/rk3288_lcdc.c +++ b/drivers/video/rockchip/lcdc/rk3288_lcdc.c @@ -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) { diff --git a/drivers/video/rockchip/rk_fb.c b/drivers/video/rockchip/rk_fb.c index eddbe281c530..3a38c611b796 100755 --- a/drivers/video/rockchip/rk_fb.c +++ b/drivers/video/rockchip/rk_fb.c @@ -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); diff --git a/include/linux/rk_fb.h b/include/linux/rk_fb.h index 4ba0d31ba541..30221d03d9e8 100755 --- a/include/linux/rk_fb.h +++ b/include/linux/rk_fb.h @@ -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 {