drm: add helpers to go from plane state to drm_rect
authorRob Clark <robdclark@gmail.com>
Sat, 5 Nov 2016 15:08:08 +0000 (11:08 -0400)
committerSean Paul <seanpaul@chromium.org>
Tue, 8 Nov 2016 21:38:03 +0000 (16:38 -0500)
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
[seanpaul resolved conflict in drm_plane.h]
Signed-off-by: Sean Paul <seanpaul@chromium.org>
drivers/gpu/drm/drm_plane_helper.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_sprite.c
include/drm/drm_plane.h

index 7899fc1dcdb082a7506558d8dc0f40c1d1d40164..7a7dddf604d7e6c5a23b5acbdeab7cd0025d2177 100644 (file)
@@ -130,15 +130,8 @@ int drm_plane_helper_check_state(struct drm_plane_state *state,
        unsigned int rotation = state->rotation;
        int hscale, vscale;
 
-       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;
-
-       dst->x1 = state->crtc_x;
-       dst->y1 = state->crtc_y;
-       dst->x2 = state->crtc_x + state->crtc_w;
-       dst->y2 = state->crtc_y + state->crtc_h;
+       *src = drm_plane_state_src(state);
+       *dst = drm_plane_state_dest(state);
 
        if (!fb) {
                state->visible = false;
index 6f8f6ec5b27a34a7c28d1b9f46719cd79c9c0706..63423d2f934a74ecf8379cce9cad03497a7bcb7e 100644 (file)
@@ -2824,14 +2824,8 @@ valid_fb:
        plane_state->crtc_w = fb->width;
        plane_state->crtc_h = fb->height;
 
-       intel_state->base.src.x1 = plane_state->src_x;
-       intel_state->base.src.y1 = plane_state->src_y;
-       intel_state->base.src.x2 = plane_state->src_x + plane_state->src_w;
-       intel_state->base.src.y2 = plane_state->src_y + plane_state->src_h;
-       intel_state->base.dst.x1 = plane_state->crtc_x;
-       intel_state->base.dst.y1 = plane_state->crtc_y;
-       intel_state->base.dst.x2 = plane_state->crtc_x + plane_state->crtc_w;
-       intel_state->base.dst.y2 = plane_state->crtc_y + plane_state->crtc_h;
+       intel_state->base.src = drm_plane_state_src(plane_state);
+       intel_state->base.dst = drm_plane_state_dest(plane_state);
 
        obj = intel_fb_obj(fb);
        if (i915_gem_object_is_tiled(obj))
index 43d0350856e7d933760e0e19541ae771d1d3a15f..da9e8b309dd209fcb52940d5f14a0f6e1c612bd6 100644 (file)
@@ -773,15 +773,8 @@ intel_check_sprite_plane(struct drm_plane *plane,
        bool can_scale;
        int ret;
 
-       src->x1 = state->base.src_x;
-       src->y1 = state->base.src_y;
-       src->x2 = state->base.src_x + state->base.src_w;
-       src->y2 = state->base.src_y + state->base.src_h;
-
-       dst->x1 = state->base.crtc_x;
-       dst->y1 = state->base.crtc_y;
-       dst->x2 = state->base.crtc_x + state->base.crtc_w;
-       dst->y2 = state->base.crtc_y + state->base.crtc_h;
+       *src = drm_plane_state_src(&state->base);
+       *dst = drm_plane_state_dest(&state->base);
 
        if (!fb) {
                state->base.visible = false;
index 29a175754aee0c113d972069106f2934c72d1075..a421cb5536202114c31a84a43d40e9f269600333 100644 (file)
@@ -118,6 +118,30 @@ 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
  */