drm/udl: fix stride issues scanning out stride != width*bpp
authorDave Airlie <airlied@redhat.com>
Thu, 1 Nov 2012 03:47:09 +0000 (13:47 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 2 Nov 2012 00:31:37 +0000 (10:31 +1000)
commit3916e1d71b62b120888aa50bcc8d9a6200fc19a7
treec489f8c8d33de95b5a0de5741e578b5d8fde0e5a
parenta2e4919a7ecb1e9bd29e526c2788ac2d04a993c0
drm/udl: fix stride issues scanning out stride != width*bpp

When buffer sharing with the i915 and using a 1680x1050 monitor,
the i915 gives is a 6912 buffer for the 6720 width, the code doesn't
render this properly as it uses one value to set the base address for
reading from the vmap and for where to start on the device.

This fixes it by calculating the values correctly for the device and
for the pixmap. No idea how I haven't seen this before now.

Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/udl/udl_drv.h
drivers/gpu/drm/udl/udl_fb.c
drivers/gpu/drm/udl/udl_transfer.c