From 16deb4e06ff474fac7215e54e5449b9d92fc2599 Mon Sep 17 00:00:00 2001 From: Mark Yao Date: Wed, 13 May 2015 16:17:28 +0800 Subject: [PATCH] rk_fb: compatible for mid hdmi switch screen Signed-off-by: Mark Yao --- drivers/video/rockchip/rk_fb.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/video/rockchip/rk_fb.c b/drivers/video/rockchip/rk_fb.c index 6fc0ec7ef229..b9bca58b7768 100755 --- a/drivers/video/rockchip/rk_fb.c +++ b/drivers/video/rockchip/rk_fb.c @@ -3429,6 +3429,12 @@ int rk_fb_switch_screen(struct rk_screen *screen, int enable, int lcdc_id) (rk_fb->disp_policy != DISPLAY_POLICY_BOX) && (rk_fb->disp_policy != DISPLAY_POLICY_BOX_TEMP)) dev_drv->ops->backlight_close(dev_drv, 1); + if (!dev_drv->uboot_logo || load_screen || + ((rk_fb->disp_policy != DISPLAY_POLICY_BOX) && + (rk_fb->disp_policy != DISPLAY_POLICY_BOX_TEMP))) { + if (dev_drv->ops->dsp_black) + dev_drv->ops->dsp_black(dev_drv, 0); + } if ((dev_drv->ops->set_screen_scaler) && (rk_fb->disp_mode == ONE_DUAL)) dev_drv->ops->set_screen_scaler(dev_drv, @@ -3506,7 +3512,9 @@ int rk_fb_switch_screen(struct rk_screen *screen, int enable, int lcdc_id) dev_drv->cur_screen->x_mirror = dev_drv->rotate_mode & X_MIRROR; dev_drv->cur_screen->y_mirror = dev_drv->rotate_mode & Y_MIRROR; } - if (!dev_drv->uboot_logo || load_screen) { + if (!dev_drv->uboot_logo || load_screen || + ((rk_fb->disp_policy != DISPLAY_POLICY_BOX) && + (rk_fb->disp_policy != DISPLAY_POLICY_BOX_TEMP))) { for (i = 0; i < dev_drv->lcdc_win_num; i++) { info = rk_fb->fb[dev_drv->fb_index_base + i]; fb_par = (struct rk_fb_par *)info->par; @@ -3546,6 +3554,7 @@ int rk_fb_switch_screen(struct rk_screen *screen, int enable, int lcdc_id) kfree(envp[1]); hdmi_switch_state = 1; + load_screen = true; dev_drv->hdmi_switch = 0; if ((rk_fb->disp_mode == ONE_DUAL) || (rk_fb->disp_mode == NO_DUAL)) { if ((dev_drv->ops->set_screen_scaler) && -- 2.34.1