radeon: avivo cursors are across the full surface.
authorDave Airlie <airlied@redhat.com>
Mon, 10 Nov 2008 05:35:34 +0000 (15:35 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 10 Nov 2008 05:35:34 +0000 (15:35 +1000)
fixes cursor on second head

linux-core/radeon_cursor.c

index d352d10..fbd4143 100644 (file)
@@ -204,6 +204,10 @@ int radeon_crtc_cursor_move(struct drm_crtc *crtc,
 
        radeon_lock_cursor(crtc, true);
        if (radeon_is_avivo(dev_priv)) {
+               /* avivo cursor are offset into the total surface */
+               x += crtc->x;
+               y += crtc->y;
+               DRM_DEBUG("x %d y %d c->x %d c->y %d\n", x, y, crtc->x, crtc->y);
                RADEON_WRITE(AVIVO_D1CUR_POSITION + radeon_crtc->crtc_offset,
                             ((xorigin ? 0: x) << 16) |
                             (yorigin ? 0 : y));