summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-08-12 11:18:06 +1000
committerDave Airlie <airlied@redhat.com>2010-08-12 11:18:06 +1000
commit5a9865d90c23c4ce0f46d380ea9119eac87a99eb (patch)
tree7321b5466e6effc20e309b1fc0fdcba75fea6ad6
parent8351bb9f085fde5dc47b115375efcc61adc23859 (diff)
evergreen: fix multi-head cursor support
-rw-r--r--src/radeon_cursor.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c
index 538c8b20..8eff9d1f 100644
--- a/src/radeon_cursor.c
+++ b/src/radeon_cursor.c
@@ -225,7 +225,7 @@ radeon_crtc_hide_cursor (xf86CrtcPtr crtc)
if (IS_DCE4_VARIANT) {
evergreen_lock_cursor(crtc, TRUE);
evergreen_setup_cursor(crtc, FALSE);
- evergreen_lock_cursor(crtc, TRUE);
+ evergreen_lock_cursor(crtc, FALSE);
} else if (IS_AVIVO_VARIANT) {
avivo_lock_cursor(crtc, TRUE);
avivo_setup_cursor(crtc, FALSE);
@@ -265,7 +265,12 @@ radeon_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y)
if (yorigin >= CURSOR_HEIGHT) yorigin = CURSOR_HEIGHT - 1;
if (IS_DCE4_VARIANT) {
- /* XXX - does evergreen need a similar hack as below? */
+ /* avivo cursor spans the full fb width */
+ if (crtc->rotatedData == NULL) {
+ x += crtc->x;
+ y += crtc->y;
+ }
+
evergreen_lock_cursor(crtc, TRUE);
OUTREG(EVERGREEN_CUR_POSITION + radeon_crtc->crtc_offset, ((xorigin ? 0 : x) << 16)
| (yorigin ? 0 : y));