rk fb: fix screen info error when in no dual mode and pull out hdmi

Signed-off-by: hjc <hjc@rock-chips.com>
This commit is contained in:
hjc
2015-02-11 16:28:47 +08:00
parent 927ee7b056
commit fe07ef3880

View File

@@ -1808,7 +1808,8 @@ static int rk_fb_set_win_buffer(struct fb_info *info,
struct fb_fix_screeninfo *fix = &info->fix;
struct rk_fb_par *fb_par = (struct rk_fb_par *)info->par;
struct rk_lcdc_driver *dev_drv = fb_par->lcdc_drv;
struct rk_screen *screen = dev_drv->cur_screen;
/*if hdmi size move to hwc,screen should point to cur_screen*/
struct rk_screen *screen = dev_drv->screen0;/*cur_screen;*/
struct fb_info *fbi;
int i, ion_fd, acq_fence_fd;
u32 xvir, yvir;
@@ -3117,6 +3118,7 @@ int rk_fb_switch_screen(struct rk_screen *screen, int enable, int lcdc_id)
} else {
if (dev_drv->screen1)
dev_drv->cur_screen = dev_drv->screen1;
memcpy(dev_drv->cur_screen, screen, sizeof(struct rk_screen));
dev_drv->cur_screen->xsize = dev_drv->cur_screen->mode.xres;
dev_drv->cur_screen->ysize = dev_drv->cur_screen->mode.yres;
@@ -3422,7 +3424,7 @@ static int init_lcdc_device_driver(struct rk_fb *rk_fb,
dev_drv->screen0 = screen;
dev_drv->cur_screen = screen;
/* devie use one lcdc + rk61x scaler for dual display */
if (rk_fb->disp_mode == ONE_DUAL) {
if ((rk_fb->disp_mode == ONE_DUAL) || (rk_fb->disp_mode == NO_DUAL)) {
struct rk_screen *screen1 =
devm_kzalloc(dev_drv->dev,
sizeof(struct rk_screen),