}
/* x y mirror ,jump line */
- if (screen->y_mirror == 1) {
+ if ((screen->y_mirror == 1) ||
+ (win->mirror_en == 1)) {
if (screen->interlace == 1) {
win->area[0].y_offset = yoffset * stride * 2 +
((win->area[0].yact - 1) * 2 + 1) * stride +
}
}
if (is_pic_yuv == 1) {
- if (screen->y_mirror == 1) {
+ if ((screen->y_mirror == 1) ||
+ (win->mirror_en == 1)) {
if (screen->interlace == 1) {
win->area[0].c_offset =
uv_y_off * uv_stride * 2 +
break;
}
- /* x y mirror ,jump line */
- if (screen->y_mirror == 1) {
- if (screen->interlace == 1) {
- win->area[0].y_offset = yoffset * stride * 2 +
- ((win->area[0].yact - 1) * 2 + 1) * stride +
- xoffset * pixel_width / 8;
- } else {
- win->area[0].y_offset = yoffset * stride +
- (win->area[0].yact - 1) * stride +
- xoffset * pixel_width / 8;
- }
- } else {
- if (screen->interlace == 1) {
- win->area[0].y_offset =
- yoffset * stride * 2 + xoffset * pixel_width / 8;
- } else {
- win->area[0].y_offset =
- yoffset * stride + xoffset * pixel_width / 8;
- }
- }
- if (is_pic_yuv == 1) {
- if (screen->y_mirror == 1) {
- if (screen->interlace == 1) {
- win->area[0].c_offset =
- uv_y_off * uv_stride * 2 +
- ((uv_y_act - 1) * 2 + 1) * uv_stride +
- uv_x_off * pixel_width / 8;
- } else {
- win->area[0].c_offset = uv_y_off * uv_stride +
- (uv_y_act - 1) * uv_stride +
- uv_x_off * pixel_width / 8;
- }
- } else {
- if (screen->interlace == 1) {
- win->area[0].c_offset =
- uv_y_off * uv_stride * 2 +
- uv_x_off * pixel_width / 8;
- } else {
- win->area[0].c_offset =
- uv_y_off * uv_stride +
- uv_x_off * pixel_width / 8;
- }
- }
- }
-
win->area[0].format = fb_data_fmt;
win->area[0].y_vir_stride = stride >> 2;
win->area[0].uv_vir_stride = uv_stride >> 2;
if (rk_fb->disp_mode == ONE_DUAL) {
if (dev_drv->ops->dsp_black)
dev_drv->ops->dsp_black(dev_drv, 1);
- if (dev_drv->ops->set_screen_scaler)
- dev_drv->ops->set_screen_scaler(dev_drv, dev_drv->screen0, 0);
+ if ((dev_drv->ops->set_screen_scaler) &&
+ (rk_fb->disp_mode == ONE_DUAL))
+ dev_drv->ops->set_screen_scaler(dev_drv,
+ dev_drv->screen0, 0);
}
if (dev_drv->uboot_logo && (screen->type != dev_drv->cur_screen->type))
dev_drv->uboot_logo = 0;
} else {
if (dev_drv->screen1)
dev_drv->cur_screen = dev_drv->screen1;
+
memcpy(dev_drv->cur_screen, screen, sizeof(struct rk_screen));
dev_drv->cur_screen->xsize = dev_drv->cur_screen->mode.xres;
dev_drv->cur_screen->ysize = dev_drv->cur_screen->mode.yres;
dev_drv->uboot_logo = 0;
}
hdmi_switch_complete = 1;
- if (rk_fb->disp_mode == ONE_DUAL) {
- if (dev_drv->ops->set_screen_scaler)
+ if ((rk_fb->disp_mode == ONE_DUAL) || (rk_fb->disp_mode == NO_DUAL)) {
+ if ((dev_drv->ops->set_screen_scaler) &&
+ (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);