static int fimc_change_fifo_position(struct fimc_control *ctrl, struct fimc_ctx *ctx) { struct v4l2_rect fimd_rect; struct fb_info *fbinfo; struct s3cfb_window *win; int ret = -1; fbinfo = registered_fb[ctx->overlay.fb_id]; win = (struct s3cfb_window *)fbinfo->par; memset(&fimd_rect, 0, sizeof(struct v4l2_rect)); ret = fimc_fimd_rect(ctrl, ctx, &fimd_rect); if (ret < 0) { fimc_err("fimc_fimd_rect fail\n"); return -EINVAL; } /* Update WIN position */ win->x = fimd_rect.left; win->y = fimd_rect.top; fbinfo->var.activate = FB_ACTIVATE_FORCE; ret = fb_set_var(fbinfo, &fbinfo->var); if (ret < 0) { fimc_err("fb_set_var fail (ret=%d)\n", ret); return -EINVAL; } return 0; }
static int fimc_change_fifo_position(struct fimc_control *ctrl, struct fimc_ctx *ctx) { struct v4l2_rect fimd_rect; struct s3cfb_user_window window; int ret = -1; memset(&fimd_rect, 0, sizeof(struct v4l2_rect)); ret = fimc_fimd_rect(ctrl, ctx, &fimd_rect); if (ret < 0) { fimc_err("fimc_fimd_rect fail\n"); return -EINVAL; } /* Update WIN position */ window.x = fimd_rect.left; window.y = fimd_rect.top; ret = s3cfb_direct_ioctl(ctrl->id, S3CFB_WIN_POSITION, (unsigned long)&window); if (ret < 0) { fimc_err("direct_ioctl(S3CFB_WIN_POSITION) fail\n"); return -EINVAL; } return 0; }