video: rockchip: fb: recalculate logo offset to match new screen size
authorZheng Yang <zhengyang@rock-chips.com>
Tue, 15 Sep 2015 03:40:35 +0000 (11:40 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 16 Sep 2015 02:33:06 +0000 (10:33 +0800)
Change-Id: I9f62088f4d0868a9284d1794718da8f5a044f24a
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
drivers/video/rockchip/rk_fb.c

index bf68b781e0bbe8d882a3c283945ae2923336cfec..d182d237b2d44f71e95ab778a6afda99a0b17091 100755 (executable)
@@ -3576,10 +3576,18 @@ int rk_fb_switch_screen(struct rk_screen *screen, int enable, int lcdc_id)
                                                (dev_drv->cur_screen->ysize << 20);
                                }
                                if (dev_drv->uboot_logo && win->state) {
-                                       win->area[0].xpos = 0;
-                                       win->area[0].ypos = 0;
-                                       win->area[0].xsize = screen->mode.xres;
-                                       win->area[0].ysize = screen->mode.yres;
+                                       if (win->area[0].xpos ||
+                                           win->area[0].ypos) {
+                                               win->area[0].xpos =
+                                                       (screen->mode.xres -
+                                                        win->area[0].xsize)/2;
+                                               win->area[0].ypos =
+                                                       (screen->mode.yres -
+                                                        win->area[0].ysize)/2;
+                                       } else {
+                                               win->area[0].xsize = screen->mode.xres;
+                                               win->area[0].ysize = screen->mode.yres;
+                                       }
                                        dev_drv->ops->set_par(dev_drv, i);
                                        dev_drv->ops->cfg_done(dev_drv);
                                } else if (!dev_drv->win[win_id]->state) {