From 774247aa9b91ddc200bad26db00afa61e0ec66c5 Mon Sep 17 00:00:00 2001 From: hjc Date: Wed, 18 Mar 2015 16:26:49 +0800 Subject: [PATCH] rk fb: update pixclock init value and scale mode only support ONE_DUAL mode Signed-off-by: hjc --- drivers/video/rockchip/rk_fb.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/video/rockchip/rk_fb.c b/drivers/video/rockchip/rk_fb.c index 8f3afff60d23..9e624b08a2eb 100755 --- a/drivers/video/rockchip/rk_fb.c +++ b/drivers/video/rockchip/rk_fb.c @@ -2803,8 +2803,7 @@ static int rk_fb_set_par(struct fb_info *info) u32 stride_32bit_2; u16 uv_x_off, uv_y_off, uv_y_act; u8 is_pic_yuv = 0; - - var->pixclock = dev_drv->pixclock; + /*var->pixclock = dev_drv->pixclock;*/ win_id = dev_drv->ops->fb_get_win_id(dev_drv, info->fix.id); if (win_id < 0) return -ENODEV; @@ -3147,7 +3146,7 @@ int rk_fb_switch_screen(struct rk_screen *screen, int enable, int lcdc_id) if (dev_drv->ops->dsp_black) dev_drv->ops->dsp_black(dev_drv, 1); if ((dev_drv->ops->set_screen_scaler) && - (rk_fb->disp_policy != DISPLAY_POLICY_BOX)) + (rk_fb->disp_mode == ONE_DUAL)) dev_drv->ops->set_screen_scaler(dev_drv, dev_drv->screen0, 0); } @@ -3240,7 +3239,7 @@ int rk_fb_switch_screen(struct rk_screen *screen, int enable, int lcdc_id) hdmi_switch_complete = 1; if ((rk_fb->disp_mode == ONE_DUAL) || (rk_fb->disp_mode == NO_DUAL)) { if ((dev_drv->ops->set_screen_scaler) && - (rk_fb->disp_policy != DISPLAY_POLICY_BOX)) + (rk_fb->disp_mode == ONE_DUAL)) dev_drv->ops->set_screen_scaler(dev_drv, dev_drv->screen0, 1); if (dev_drv->ops->dsp_black) dev_drv->ops->dsp_black(dev_drv, 0); @@ -3640,7 +3639,6 @@ int rk_fb_register(struct rk_lcdc_driver *dev_drv, (fbi->var.xres_virtual) * (fbi->var.bits_per_pixel >> 3); fbi->var.width = dev_drv->cur_screen->width; fbi->var.height = dev_drv->cur_screen->height; - fbi->var.pixclock = dev_drv->pixclock; if (dev_drv->iommu_enabled) fb_ops.fb_mmap = rk_fb_mmap; fbi->fbops = &fb_ops; @@ -3709,7 +3707,7 @@ int rk_fb_register(struct rk_lcdc_driver *dev_drv, u32 dsp_addr; struct fb_info *main_fbi = rk_fb->fb[0]; main_fbi->fbops->fb_open(main_fbi, 1); - + main_fbi->var.pixclock = dev_drv->pixclock; #if defined(CONFIG_ROCKCHIP_IOMMU) if (dev_drv->iommu_enabled) { if (dev_drv->mmu_dev) @@ -3852,9 +3850,9 @@ int rk_fb_register(struct rk_lcdc_driver *dev_drv, main_fbi->fbops->fb_pan_display(&main_fbi->var, main_fbi); #endif } else { - struct fb_info *extend_fbi = rk_fb->fb[rk_fb->num_fb >> 1]; - - rk_fb_alloc_buffer(extend_fbi); + struct fb_info *extend_fbi = rk_fb->fb[rk_fb->num_fb >> 1]; + extend_fbi->var.pixclock = rk_fb->fb[0]->var.pixclock; + rk_fb_alloc_buffer(extend_fbi); } #endif return 0; -- 2.34.1