diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c index b510164..3002646 100644 --- a/hw/xfree86/modes/xf86Cursors.c +++ b/hw/xfree86/modes/xf86Cursors.c @@ -137,7 +137,13 @@ cursor_bitpos (int flags, int x, Bool mask) mask = !mask; if (flags & HARDWARE_CURSOR_NIBBLE_SWAPPED) x = (x & ~3) | (3 - (x & 3)); + /* XXX: This code needs more work to be really endianness clean, but for now + * this allows the radeon driver to work on big endian platforms. See + * https://bugs.freedesktop.org/show_bug.cgi?id=11796 + */ +#if X_BYTE_ORDER == X_LITTLE_ENDIAN if (flags & HARDWARE_CURSOR_BIT_ORDER_MSBFIRST) +#endif x = (x & ~7) | (7 - (x & 7)); if (flags & HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1) x = (x << 1) + mask;