drm/i915: Handle untiled planes when computing their offsets
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 21 Feb 2013 20:04:31 +0000 (20:04 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 21 Feb 2013 20:52:08 +0000 (21:52 +0100)
commitbc752862170c135d6c09fb22d79eeb451023568e
treec9c9d867a1c9c347eff829fc28278168c6364eba
parent210561ffd72d00eccf12c0131b8024d5436bae95
drm/i915: Handle untiled planes when computing their offsets

We trim the fb to fit the CRTC by computing the offset of that CRTC to
its nearest tile_row origin. This allows us to use framebuffers that are
larger than the CRTC limits without additional work.

However, we failed to compute the offset for a linear framebuffer
correctly as we treated its x-advance in whole tiles (instead of the
linear increment expected), leaving the CRTC misaligned with its
contents.

Fixes regression from commit c2c75131244507c93f812862fdbd4f3a37139401
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Thu Jul 5 12:17:30 2012 +0200

    drm/i915: adjust framebuffer base address on gen4+

v2: Adjust relative x-coordinate after linear alignment (vsyrjala)
v3: Repaint with pokadots (vsyrjala)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61152
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: stable@vger.kernel.org
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_sprite.c