drm/i915: Stuff rotation params into view union
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 14 Oct 2015 14:51:05 +0000 (16:51 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 19 Nov 2015 15:42:01 +0000 (16:42 +0100)
We don't need 2 separate unions.

Note that this was done intentinoally

Author: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Date:   Wed May 6 14:35:38 2015 +0300

    drm/i915: Add a partial GGTT view type

on Tvrtko's request, but without a clear justification. Rotated views
are also not checking for matching paramters in i915_ggtt_view_equal,
which seems like a bug. But this patch here doesn't change that.

Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1444834266-12689-2-git-send-email-daniel.vetter@ffwll.ch
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem_gtt.c
drivers/gpu/drm/i915/i915_gem_gtt.h
drivers/gpu/drm/i915/intel_display.c

index 96e923648360978afb21a76092f4fb25d05054a5..1f7e6b9df45dcf440997f908b60cc6baf24f90a7 100644 (file)
@@ -3328,7 +3328,7 @@ static struct sg_table *
 intel_rotate_fb_obj_pages(struct i915_ggtt_view *ggtt_view,
                          struct drm_i915_gem_object *obj)
 {
-       struct intel_rotation_info *rot_info = &ggtt_view->rotation_info;
+       struct intel_rotation_info *rot_info = &ggtt_view->params.rotation_info;
        unsigned int size_pages = rot_info->size >> PAGE_SHIFT;
        unsigned int size_pages_uv;
        struct sg_page_iter sg_iter;
@@ -3560,7 +3560,7 @@ i915_ggtt_view_size(struct drm_i915_gem_object *obj,
        if (view->type == I915_GGTT_VIEW_NORMAL) {
                return obj->base.size;
        } else if (view->type == I915_GGTT_VIEW_ROTATED) {
-               return view->rotation_info.size;
+               return view->params.rotation_info.size;
        } else if (view->type == I915_GGTT_VIEW_PARTIAL) {
                return view->params.partial.size << PAGE_SHIFT;
        } else {
index a216397ead52f03e49a3f72244fb2c72443d526a..310f212a321c668933fec11ef5629cb64113d119 100644 (file)
@@ -156,13 +156,10 @@ struct i915_ggtt_view {
                        u64 offset;
                        unsigned int size;
                } partial;
+               struct intel_rotation_info rotation_info;
        } params;
 
        struct sg_table *pages;
-
-       union {
-               struct intel_rotation_info rotation_info;
-       };
 };
 
 extern const struct i915_ggtt_view i915_ggtt_view_normal;
index 78ebea06d96c66ef58784fa3d804fdf8aa3f0db2..4712cca76979e5792307ca8243fc64869afa2fa3 100644 (file)
@@ -2265,7 +2265,7 @@ static void
 intel_fill_fb_ggtt_view(struct i915_ggtt_view *view, struct drm_framebuffer *fb,
                        const struct drm_plane_state *plane_state)
 {
-       struct intel_rotation_info *info = &view->rotation_info;
+       struct intel_rotation_info *info = &view->params.rotation_info;
        unsigned int tile_height, tile_pitch;
 
        *view = i915_ggtt_view_normal;
@@ -2929,7 +2929,7 @@ u32 intel_plane_obj_offset(struct intel_plane *intel_plane,
        offset = vma->node.start;
 
        if (plane == 1) {
-               offset += vma->ggtt_view.rotation_info.uv_start_page *
+               offset += vma->ggtt_view.params.rotation_info.uv_start_page *
                          PAGE_SIZE;
        }