if (var->grayscale >> 8) {
xsize = (var->grayscale >> 8) & 0xfff;
ysize = (var->grayscale >> 20) & 0xfff;
+ xsize |= (var->reserved[0] << 12);
+ var->reserved[0] = 0;
if (xsize > screen->mode.xres)
xsize = screen->mode.xres;
if (ysize > screen->mode.yres)
info = rk_fb->fb[dev_drv->fb_index_base];
info->var.grayscale &= 0xff;
info->var.grayscale |=
- (dev_drv->cur_screen->mode.xres << 8) +
+ ((dev_drv->cur_screen->mode.xres & 0xfff) << 8) +
(dev_drv->cur_screen->mode.yres << 20);
+ info->var.reserved[0] |= (dev_drv->cur_screen->mode.xres >> 12);
mutex_lock(&dev_drv->win_config);
info->var.xoffset = 0;
info->var.yoffset = 0;
if (rk_fb->disp_mode == ONE_DUAL) {
info->var.grayscale &= 0xff;
info->var.grayscale |=
- (dev_drv->cur_screen->xsize << 8) +
+ ((dev_drv->cur_screen->mode.xres & 0xfff) << 8) +
(dev_drv->cur_screen->ysize << 20);
+ info->var.reserved[0] |= (dev_drv->cur_screen->mode.xres >> 12);
}
if (dev_drv->uboot_logo && win->state) {
if (win->area[0].xpos ||
fbi->var.width = dev_drv->cur_screen->width;
fbi->var.height = dev_drv->cur_screen->height;
fbi->var.grayscale |=
- (fbi->var.xres << 8) + (fbi->var.yres << 20);
+ ((fbi->var.xres & 0xfff) << 8) + (fbi->var.yres << 20);
+ fbi->var.reserved[0] |= (fbi->var.xres >> 12);
#if defined(CONFIG_LOGO_LINUX_BMP)
fbi->var.bits_per_pixel = 32;
#else