Message ID | 1469549224-1860-8-git-send-email-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2016年07月27日 00:07, ville.syrjala@linux.intel.com wrote: > From: Ville Syrjälä<ville.syrjala@linux.intel.com> > > 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> Thanks.
On Tue, Jul 26, 2016 at 12:07 PM, <ville.syrjala@linux.intel.com> wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > 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> Reviewed-by: Sean Paul <seanpaul@chromium.org> > --- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 25 +++++-------------------- > 1 file changed, 5 insertions(+), 20 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > index c566c740ab49..31744fe99b38 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -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; > -- > 2.7.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index c566c740ab49..31744fe99b38 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -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;