diff options
Diffstat (limited to 'src/radeon_mergedfb.c')
-rw-r--r-- | src/radeon_mergedfb.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/radeon_mergedfb.c b/src/radeon_mergedfb.c index c04577d1..ba0b343c 100644 --- a/src/radeon_mergedfb.c +++ b/src/radeon_mergedfb.c @@ -1961,7 +1961,14 @@ RADEONSetCursorPositionMerged(ScrnInfoPtr pScrn, int x, int y) OUTREG(RADEON_CUR_HORZ_VERT_POSN, (RADEON_CUR_LOCK | ((xorigin ? 0 : x1) << 16) | (yorigin ? 0 : y1))); - OUTREG(RADEON_CUR_OFFSET, info->cursor_start + yorigin * stride); +#ifdef USE_EXA + if (info->useEXA) + OUTREG(RADEON_CUR_OFFSET, info->cursorArea->offset + yorigin * stride); +#endif /* USE_EXA */ +#ifdef USE_XAA + if (!info->useEXA) + OUTREG(RADEON_CUR_OFFSET, info->cursor_offset + yorigin * stride); +#endif /* USE_XAA */ /* cursor2 */ OUTREG(RADEON_CUR2_HORZ_VERT_OFF, (RADEON_CUR2_LOCK | (xorigin << 16) @@ -1969,9 +1976,14 @@ RADEONSetCursorPositionMerged(ScrnInfoPtr pScrn, int x, int y) OUTREG(RADEON_CUR2_HORZ_VERT_POSN, (RADEON_CUR2_LOCK | ((xorigin ? 0 : x2) << 16) | (yorigin ? 0 : y2))); - OUTREG(RADEON_CUR2_OFFSET, - info->cursor_start + yorigin * stride); - +#ifdef USE_EXA + if (info->useEXA) + OUTREG(RADEON_CUR2_OFFSET, info->cursorArea->offset + yorigin * stride); +#endif /* USE_EXA */ +#ifdef USE_XAA + if (!info->useEXA) + OUTREG(RADEON_CUR2_OFFSET, info->cursor_offset + yorigin * stride); +#endif /* USE_XAA */ } /* radeon Xv helpers */ |