drm/i915: fix up tiling/fence reg setup on i8xx class hw
authorDaniel Vetter <daniel@biene.ffwll.ch>
Sun, 29 Mar 2009 12:09:41 +0000 (14:09 +0200)
committerEric Anholt <eric@anholt.net>
Wed, 1 Apr 2009 18:06:47 +0000 (11:06 -0700)
commit8d7773a32d8aa723030712b0a500a4a402a21c85
tree8b3e9e0449f9c85fa97fbd44c761713a3821858c
parentc09bca786ff941ed17c5f381c4eca5b106808c51
drm/i915: fix up tiling/fence reg setup on i8xx class hw

This fixes all the tiling problems with the 2d ddx. glxgears still doesn't work.
Changes:

- fix a copy&paste error in i8xx fence reg setup. It resulted in an at most a
  512KB offset of the fence reg window, so was only visible sometimes.
- add tests for stride and object size constrains (also for i915 and 1965 class
  hw). Userspace seems to have an of-by-one bug there, which changes the fence
  size by at most 512KB due to an overflow.
- because i8xx hw is quite old (and therefore not as well-tested) I left 2 debug
  WARN_ONs in the i8xx fence reg setup code to hopefully catch any further
  overflows in the bit-fields. Lastly there's one small change to make the
  alignment checks more consistent.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=20289
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem_tiling.c
drivers/gpu/drm/i915/i915_reg.h