On Fri, Oct 14, 2016 at 7:55 PM, Rob Clark <robdclark@xxxxxxxxx> wrote: Reviewed-by: Sean Paul <seanpaul@xxxxxxxxxxxx> > Signed-off-by: Rob Clark <robdclark@xxxxxxxxx> > --- > drivers/gpu/drm/drm_simple_kms_helper.c | 14 ++------------ > drivers/gpu/drm/i915/intel_atomic_plane.c | 10 ++-------- > drivers/gpu/drm/mediatek/mtk_drm_plane.c | 15 ++------------- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 10 ++-------- > include/drm/drm_crtc.h | 24 ++++++++++++++++++++++++ > 5 files changed, 32 insertions(+), 41 deletions(-) > > diff --git a/drivers/gpu/drm/drm_simple_kms_helper.c b/drivers/gpu/drm/drm_simple_kms_helper.c > index 0db36d2..9834fc5 100644 > --- a/drivers/gpu/drm/drm_simple_kms_helper.c > +++ b/drivers/gpu/drm/drm_simple_kms_helper.c > @@ -73,18 +73,8 @@ static const struct drm_crtc_funcs drm_simple_kms_crtc_funcs = { > static int drm_simple_kms_plane_atomic_check(struct drm_plane *plane, > struct drm_plane_state *plane_state) > { > - struct drm_rect src = { > - .x1 = plane_state->src_x, > - .y1 = plane_state->src_y, > - .x2 = plane_state->src_x + plane_state->src_w, > - .y2 = plane_state->src_y + plane_state->src_h, > - }; > - struct drm_rect dest = { > - .x1 = plane_state->crtc_x, > - .y1 = plane_state->crtc_y, > - .x2 = plane_state->crtc_x + plane_state->crtc_w, > - .y2 = plane_state->crtc_y + plane_state->crtc_h, > - }; > + struct drm_rect src = drm_plane_state_src(plane_state); > + struct drm_rect dest = drm_plane_state_dest(plane_state); > struct drm_rect clip = { 0 }; > struct drm_simple_display_pipe *pipe; > struct drm_crtc_state *crtc_state; > diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c > index 7de7721..6682e9b 100644 > --- a/drivers/gpu/drm/i915/intel_atomic_plane.c > +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c > @@ -139,14 +139,8 @@ static int intel_plane_atomic_check(struct drm_plane *plane, > * we want to keep another copy internal to our driver that we can > * clip/modify ourselves. > */ > - intel_state->src.x1 = state->src_x; > - intel_state->src.y1 = state->src_y; > - intel_state->src.x2 = state->src_x + state->src_w; > - intel_state->src.y2 = state->src_y + state->src_h; > - intel_state->dst.x1 = state->crtc_x; > - intel_state->dst.y1 = state->crtc_y; > - intel_state->dst.x2 = state->crtc_x + state->crtc_w; > - intel_state->dst.y2 = state->crtc_y + state->crtc_h; > + intel_state->src = drm_plane_state_src(state); > + intel_state->dst = drm_plane_state_dest(state); > > /* Clip all planes to CRTC size, or 0x0 if CRTC is disabled */ > intel_state->clip.x1 = 0; > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c > index 3995765..2749e74 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c > @@ -135,19 +135,8 @@ static int mtk_plane_atomic_check(struct drm_plane *plane, > struct drm_framebuffer *fb = state->fb; > struct drm_crtc_state *crtc_state; > bool visible; > - struct drm_rect dest = { > - .x1 = state->crtc_x, > - .y1 = state->crtc_y, > - .x2 = state->crtc_x + state->crtc_w, > - .y2 = state->crtc_y + state->crtc_h, > - }; > - struct drm_rect src = { > - /* 16.16 fixed point */ > - .x1 = state->src_x, > - .y1 = state->src_y, > - .x2 = state->src_x + state->src_w, > - .y2 = state->src_y + state->src_h, > - }; > + struct drm_rect dest = drm_plane_state_dest(state); > + struct drm_rect src = drm_plane_state_src(state); /* 16.16 fixed point */ > struct drm_rect clip = { 0, }; > > if (!fb) > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > index 6255e5b..31384ca 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -610,14 +610,8 @@ 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; > + *src = drm_plane_state_src(state); > + *dest = drm_plane_state_dest(state); > > clip.x1 = 0; > clip.y1 = 0; > diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h > index b7d67cc..856fdf8 100644 > --- a/include/drm/drm_crtc.h > +++ b/include/drm/drm_crtc.h > @@ -36,6 +36,7 @@ > #include <uapi/drm/drm_mode.h> > #include <uapi/drm/drm_fourcc.h> > #include <drm/drm_modeset_lock.h> > +#include <drm/drm_rect.h> > > struct drm_device; > struct drm_mode_set; > @@ -1395,6 +1396,29 @@ struct drm_plane_state { > struct drm_atomic_state *state; > }; > > +static inline struct drm_rect > +drm_plane_state_src(const struct drm_plane_state *state) > +{ > + struct drm_rect src = { > + .x1 = state->src_x, > + .y1 = state->src_y, > + .x2 = state->src_x + state->src_w, > + .y2 = state->src_y + state->src_h, > + }; > + return src; > +} > + > +static inline struct drm_rect > +drm_plane_state_dest(const struct drm_plane_state *state) > +{ > + struct drm_rect dest = { > + .x1 = state->crtc_x, > + .y1 = state->crtc_y, > + .x2 = state->crtc_x + state->crtc_w, > + .y2 = state->crtc_y + state->crtc_h, > + }; > + return dest; > +} > > /** > * struct drm_plane_funcs - driver plane control functions > -- > 2.7.4 > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel