diff --git a/drivers/video/rockchip/rk_fb.c b/drivers/video/rockchip/rk_fb.c index ee0140cec71e..c8393580a059 100644 --- a/drivers/video/rockchip/rk_fb.c +++ b/drivers/video/rockchip/rk_fb.c @@ -3645,6 +3645,13 @@ int rk_fb_switch_screen(struct rk_screen *screen, int enable, int lcdc_id) mutex_unlock(&dev_drv->switch_screen); return 0; } else { + if (load_screen || (rk_fb->disp_policy != DISPLAY_POLICY_BOX)) { + for (i = 0; i < dev_drv->lcdc_win_num; i++) { + if (dev_drv->win[i] && dev_drv->win[i]->state && + dev_drv->ops->win_direct_en) + dev_drv->ops->win_direct_en(dev_drv, i, 0); + } + } if (dev_drv->uboot_logo) { if (dev_drv->cur_screen->mode.xres != screen->mode.xres || @@ -3662,14 +3669,6 @@ int rk_fb_switch_screen(struct rk_screen *screen, int enable, int lcdc_id) dev_drv->cur_screen->y_mirror = dev_drv->rotate_mode & Y_MIRROR; } - if (load_screen || (rk_fb->disp_policy != DISPLAY_POLICY_BOX)) { - for (i = 0; i < dev_drv->lcdc_win_num; i++) { - if (dev_drv->win[i] && dev_drv->win[i]->state && - dev_drv->ops->win_direct_en) - dev_drv->ops->win_direct_en(dev_drv, i, 0); - } - } - if (!dev_drv->uboot_logo || load_screen || (rk_fb->disp_policy != DISPLAY_POLICY_BOX)) { for (i = 0; i < dev_drv->lcdc_win_num; i++) {