OSDN Git Service

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 7899fc1..7a7dddf 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 6f8f6ec..63423d2 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 43d0350..da9e8b3 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 29a1757..a421cb5 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
  */