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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 Nov 2012 21:18:30 +0000 (13:18 -0800)
commitf9f1e4bbbde4036cd178cdd121f72a6d547502e4
treedd0e5866b7776554be19ee8575da459b7dcc72d7
parentf630e56c8b16bb9dbbf92a1f30034d5cecf635ea
drm/udl: fix stride issues scanning out stride != width*bpp

commit 3916e1d71b62b120888aa50bcc8d9a6200fc19a7 upstream.

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.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/udl/udl_drv.h
drivers/gpu/drm/udl/udl_fb.c
drivers/gpu/drm/udl/udl_transfer.c