From: Tvrtko Ursulin <tvrtko.ursu...@intel.com>

These are the display call sites so should use the proper helper.

Also requires intel_plane_obj_offset to assume normal view when
plane pointer is not available.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 6 ++++--
 drivers/gpu/drm/i915/intel_fbdev.c   | 9 +++++----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 182477f..92bb17a 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2624,7 +2624,8 @@ intel_find_initial_plane_obj(struct intel_crtc 
*intel_crtc,
                        continue;
 
                obj = intel_fb_obj(fb);
-               if (i915_gem_obj_ggtt_offset(obj) == plane_config->base) {
+               if 
(intel_plane_obj_offset(to_intel_plane_state(c->primary->state),
+                                          obj) == plane_config->base) {
                        drm_framebuffer_reference(fb);
                        goto valid_fb;
                }
@@ -2910,7 +2911,8 @@ intel_plane_obj_offset(struct intel_plane_state 
*intel_plane_state,
 {
        const struct i915_ggtt_view *view = &i915_ggtt_view_normal;
 
-       if (intel_rotation_90_or_270(intel_plane_state->base.rotation))
+       if (intel_plane_state &&
+           intel_rotation_90_or_270(intel_plane_state->base.rotation))
                view = &i915_ggtt_view_rotated;
 
        return i915_gem_obj_ggtt_offset_view(obj, view);
diff --git a/drivers/gpu/drm/i915/intel_fbdev.c 
b/drivers/gpu/drm/i915/intel_fbdev.c
index 6372cfc..6572840 100644
--- a/drivers/gpu/drm/i915/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/intel_fbdev.c
@@ -206,6 +206,7 @@ static int intelfb_create(struct drm_fb_helper *helper,
        struct fb_info *info;
        struct drm_framebuffer *fb;
        struct drm_i915_gem_object *obj;
+       unsigned long disp_addr;
        int size, ret;
        bool prealloc = false;
 
@@ -269,12 +270,12 @@ static int intelfb_create(struct drm_fb_helper *helper,
        info->apertures->ranges[0].base = dev->mode_config.fb_base;
        info->apertures->ranges[0].size = dev_priv->gtt.mappable_end;
 
-       info->fix.smem_start = dev->mode_config.fb_base + 
i915_gem_obj_ggtt_offset(obj);
+       disp_addr = intel_plane_obj_offset(NULL, obj);
+       info->fix.smem_start = dev->mode_config.fb_base + disp_addr;
        info->fix.smem_len = size;
 
        info->screen_base =
-               ioremap_wc(dev_priv->gtt.mappable_base + 
i915_gem_obj_ggtt_offset(obj),
-                          size);
+               ioremap_wc(dev_priv->gtt.mappable_base + disp_addr, size);
        if (!info->screen_base) {
                ret = -ENOSPC;
                goto out_unpin;
@@ -298,7 +299,7 @@ static int intelfb_create(struct drm_fb_helper *helper,
 
        DRM_DEBUG_KMS("allocated %dx%d fb: 0x%08lx, bo %p\n",
                      fb->width, fb->height,
-                     i915_gem_obj_ggtt_offset(obj), obj);
+                     disp_addr, obj);
 
        mutex_unlock(&dev->struct_mutex);
        vga_switcheroo_client_fb_set(dev->pdev, info);
-- 
2.4.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to