The userspace-requested plane coordinates are now stored in
plane->state.base (and the i915-adjusted values are stored in
plane->state), so we no longer use the coordinate fields in intel_plane
or the orig_{src,dst} fields in intel_plane_state.  Drop them.

Reviewed-by: Bob Paauwe <[email protected]>
Signed-off-by: Matt Roper <[email protected]>
---
 drivers/gpu/drm/i915/intel_display.c | 40 ++++++++++--------------------------
 drivers/gpu/drm/i915/intel_drv.h     |  6 ------
 drivers/gpu/drm/i915/intel_sprite.c  | 27 ++++++++----------------
 3 files changed, 19 insertions(+), 54 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index d7d0297..ca78af6 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -9548,7 +9548,6 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
        struct drm_i915_gem_object *obj = intel_fb_obj(fb);
        struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
        struct drm_plane *primary = crtc->primary;
-       struct intel_plane *intel_plane = to_intel_plane(primary);
        enum pipe pipe = intel_crtc->pipe;
        struct intel_unpin_work *work;
        struct intel_engine_cs *ring;
@@ -9708,14 +9707,14 @@ free_work:
        if (ret == -EIO) {
 out_hang:
                ret = primary->funcs->update_plane(primary, crtc, fb,
-                                                  intel_plane->crtc_x,
-                                                  intel_plane->crtc_y,
-                                                  intel_plane->crtc_h,
-                                                  intel_plane->crtc_w,
-                                                  intel_plane->src_x,
-                                                  intel_plane->src_y,
-                                                  intel_plane->src_h,
-                                                  intel_plane->src_w);
+                                                  primary->state->crtc_x,
+                                                  primary->state->crtc_y,
+                                                  primary->state->crtc_h,
+                                                  primary->state->crtc_w,
+                                                  primary->state->src_x,
+                                                  primary->state->src_y,
+                                                  primary->state->src_h,
+                                                  primary->state->src_w);
                if (ret == 0 && event) {
                        spin_lock_irq(&dev->event_lock);
                        drm_send_vblank_event(dev, pipe, event);
@@ -11739,14 +11738,6 @@ intel_commit_primary_plane(struct drm_plane *plane,
        crtc->x = src->x1 >> 16;
        crtc->y = src->y1 >> 16;
 
-       intel_plane->crtc_x = state->orig_dst.x1;
-       intel_plane->crtc_y = state->orig_dst.y1;
-       intel_plane->crtc_w = drm_rect_width(&state->orig_dst);
-       intel_plane->crtc_h = drm_rect_height(&state->orig_dst);
-       intel_plane->src_x = state->orig_src.x1;
-       intel_plane->src_y = state->orig_src.y1;
-       intel_plane->src_w = drm_rect_width(&state->orig_src);
-       intel_plane->src_h = drm_rect_height(&state->orig_src);
        intel_plane->obj = obj;
 
        if (intel_crtc->active) {
@@ -11920,8 +11911,7 @@ intel_pre_commit_cursor(struct drm_plane *plane,
        }
 
        if (intel_crtc->active) {
-               if (intel_crtc->cursor_width !=
-                   drm_rect_width(&state->orig_dst))
+               if (intel_crtc->cursor_width != state->base.crtc_w)
                        intel_update_watermarks(&intel_crtc->base);
        }
 }
@@ -11952,14 +11942,6 @@ intel_commit_cursor_plane(struct drm_plane *plane,
        crtc->cursor_x = state->base.crtc_x;
        crtc->cursor_y = state->base.crtc_y;
 
-       intel_plane->crtc_x = state->orig_dst.x1;
-       intel_plane->crtc_y = state->orig_dst.y1;
-       intel_plane->crtc_w = drm_rect_width(&state->orig_dst);
-       intel_plane->crtc_h = drm_rect_height(&state->orig_dst);
-       intel_plane->src_x = state->orig_src.x1;
-       intel_plane->src_y = state->orig_src.y1;
-       intel_plane->src_w = drm_rect_width(&state->orig_src);
-       intel_plane->src_h = drm_rect_height(&state->orig_src);
        intel_plane->obj = obj;
 
        if (intel_crtc->cursor_bo == obj)
@@ -11975,8 +11957,8 @@ intel_commit_cursor_plane(struct drm_plane *plane,
        intel_crtc->cursor_addr = addr;
        intel_crtc->cursor_bo = obj;
 update:
-       intel_crtc->cursor_width = drm_rect_width(&state->orig_dst);
-       intel_crtc->cursor_height = drm_rect_height(&state->orig_dst);
+       intel_crtc->cursor_width = state->base.crtc_w;
+       intel_crtc->cursor_height = state->base.crtc_h;
 
        if (intel_crtc->active)
                intel_crtc_update_cursor(crtc, state->visible);
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 4c1f583..d14326c 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -248,8 +248,6 @@ struct intel_plane_state {
        struct drm_rect src;
        struct drm_rect dst;
        struct drm_rect clip;
-       struct drm_rect orig_src;
-       struct drm_rect orig_dst;
        bool visible;
 
        /*
@@ -498,10 +496,6 @@ struct intel_plane {
        struct drm_i915_gem_object *obj;
        bool can_scale;
        int max_downscale;
-       int crtc_x, crtc_y;
-       unsigned int crtc_w, crtc_h;
-       uint32_t src_x, src_y;
-       uint32_t src_w, src_h;
        unsigned int rotation;
 
        /* Since we need to change the watermarks before/after
diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
b/drivers/gpu/drm/i915/intel_sprite.c
index 2fb0cc04f..ae98db5 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1064,7 +1064,6 @@ intel_check_sprite_plane(struct drm_plane *plane,
        uint32_t src_x, src_y, src_w, src_h;
        struct drm_rect *src = &state->src;
        struct drm_rect *dst = &state->dst;
-       struct drm_rect *orig_src = &state->orig_src;
        const struct drm_rect *clip = &state->clip;
        int hscale, vscale;
        int max_scale, min_scale;
@@ -1150,10 +1149,10 @@ intel_check_sprite_plane(struct drm_plane *plane,
                                    intel_plane->rotation);
 
                /* sanity check to make sure the src viewport wasn't enlarged */
-               WARN_ON(src->x1 < (int) orig_src->x1 ||
-                       src->y1 < (int) orig_src->y1 ||
-                       src->x2 > (int) orig_src->x2 ||
-                       src->y2 > (int) orig_src->y2);
+               WARN_ON(src->x1 < (int) state->base.src_x ||
+                       src->y1 < (int) state->base.src_y ||
+                       src->x2 > (int) state->base.src_x + state->base.src_w ||
+                       src->y2 > (int) state->base.src_y + state->base.src_h);
 
                /*
                 * Hardware doesn't handle subpixel coordinates.
@@ -1289,14 +1288,6 @@ intel_commit_sprite_plane(struct drm_plane *plane,
        unsigned int crtc_w, crtc_h;
        uint32_t src_x, src_y, src_w, src_h;
 
-       intel_plane->crtc_x = state->orig_dst.x1;
-       intel_plane->crtc_y = state->orig_dst.y1;
-       intel_plane->crtc_w = drm_rect_width(&state->orig_dst);
-       intel_plane->crtc_h = drm_rect_height(&state->orig_dst);
-       intel_plane->src_x = state->orig_src.x1;
-       intel_plane->src_y = state->orig_src.y1;
-       intel_plane->src_w = drm_rect_width(&state->orig_src);
-       intel_plane->src_h = drm_rect_height(&state->orig_src);
        intel_plane->obj = obj;
 
        if (intel_crtc->active) {
@@ -1405,16 +1396,14 @@ int intel_plane_set_property(struct drm_plane *plane,
 
 int intel_plane_restore(struct drm_plane *plane)
 {
-       struct intel_plane *intel_plane = to_intel_plane(plane);
-
        if (!plane->crtc || !plane->fb)
                return 0;
 
        return plane->funcs->update_plane(plane, plane->crtc, plane->fb,
-                                 intel_plane->crtc_x, intel_plane->crtc_y,
-                                 intel_plane->crtc_w, intel_plane->crtc_h,
-                                 intel_plane->src_x, intel_plane->src_y,
-                                 intel_plane->src_w, intel_plane->src_h);
+                                 plane->state->crtc_x, plane->state->crtc_y,
+                                 plane->state->crtc_w, plane->state->crtc_h,
+                                 plane->state->src_x, plane->state->src_y,
+                                 plane->state->src_w, plane->state->src_h);
 }
 
 static const struct drm_plane_funcs intel_plane_funcs = {
-- 
1.8.5.1

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to