drm/rockchip: Use drm_plane_helper_check_state()
Replace the use of drm_plane_helper_check_update() with drm_plane_helper_check_state() since we have a plane state. Rockchip looks to handling plane clipping rather well already (unlikje most arm drm drivers) so there are no function changes here. Cc: Yao <mark.yao@rock-chips.com> Cc: linux-rockchip@lists.infradead.org Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Acked-by: Mark Yao <mark.yao@rock-chips.com> Signed-off-by: Sean Paul <seanpaul@chromium.org> Link: http://patchwork.freedesktop.org/patch/msgid/1469549224-1860-8-git-send-email-ville.syrjala@linux.intel.com
This commit is contained in:
Родитель
ac92028e99
Коммит
f9b96be0ec
|
@ -591,10 +591,7 @@ static int vop_plane_atomic_check(struct drm_plane *plane,
|
|||
struct vop_win *vop_win = to_vop_win(plane);
|
||||
struct vop_plane_state *vop_plane_state = to_vop_plane_state(state);
|
||||
const struct vop_win_data *win = vop_win->data;
|
||||
bool visible;
|
||||
int ret;
|
||||
struct drm_rect *dest = &state->dst;
|
||||
struct drm_rect *src = &state->src;
|
||||
struct drm_rect clip;
|
||||
int min_scale = win->phy->scl ? FRAC_16_16(1, 8) :
|
||||
DRM_PLANE_HELPER_NO_SCALING;
|
||||
|
@ -608,30 +605,18 @@ static int vop_plane_atomic_check(struct drm_plane *plane,
|
|||
if (WARN_ON(!crtc_state))
|
||||
return -EINVAL;
|
||||
|
||||
src->x1 = state->src_x;
|
||||
src->y1 = state->src_y;
|
||||
src->x2 = state->src_x + state->src_w;
|
||||
src->y2 = state->src_y + state->src_h;
|
||||
dest->x1 = state->crtc_x;
|
||||
dest->y1 = state->crtc_y;
|
||||
dest->x2 = state->crtc_x + state->crtc_w;
|
||||
dest->y2 = state->crtc_y + state->crtc_h;
|
||||
|
||||
clip.x1 = 0;
|
||||
clip.y1 = 0;
|
||||
clip.x2 = crtc_state->adjusted_mode.hdisplay;
|
||||
clip.y2 = crtc_state->adjusted_mode.vdisplay;
|
||||
|
||||
ret = drm_plane_helper_check_update(plane, crtc, state->fb,
|
||||
src, dest, &clip,
|
||||
state->rotation,
|
||||
min_scale,
|
||||
max_scale,
|
||||
true, true, &visible);
|
||||
ret = drm_plane_helper_check_state(state, &clip,
|
||||
min_scale, max_scale,
|
||||
true, true);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (!visible)
|
||||
if (!state->visible)
|
||||
goto out_disable;
|
||||
|
||||
vop_plane_state->format = vop_convert_format(fb->pixel_format);
|
||||
|
@ -642,7 +627,7 @@ static int vop_plane_atomic_check(struct drm_plane *plane,
|
|||
* Src.x1 can be odd when do clip, but yuv plane start point
|
||||
* need align with 2 pixel.
|
||||
*/
|
||||
if (is_yuv_support(fb->pixel_format) && ((src->x1 >> 16) % 2))
|
||||
if (is_yuv_support(fb->pixel_format) && ((state->src.x1 >> 16) % 2))
|
||||
return -EINVAL;
|
||||
|
||||
vop_plane_state->enable = true;
|
||||
|
|
Загрузка…
Ссылка в новой задаче