Bug#420738: glint driver big-endian issue with xorg 7.1
Package: xserver-xorg-video-glint
Version: 1:1.1.1-3
Architecture: SPARC (maybe also PPC, but not verified)
System configuration:
Sun Ultra60 with Raptor GFX graphic card (Permedia2v chipset)
running etch with a 2.6.20 kernel.
The problem is also present in older "testing" version, starting from Xorg
7.0.
Problem:
The Xserver hangs or crashes when loading the driver.
As from the logfile, the card is wrongly detected, e.g. 4MB video ram instead
of 8MB.
Reason:
The driver correctly writes to the big-endian registers of the card, but the
MMIO_xxxx functions do a byte-swap by default on this architecture, ending up
in a wrong byte-order. For reference, see "compiler.h" from the "xorg-server"
source.
Solution:
Define "SPARC_MMIO_IS_BE" for compiling the glint driver.
E.g., by:
# CFLAGS="-O2 -DSPARC_MMIO_IS_BE" ./configure
(maybe on PPC_MMIO_IS_BE has to be defined on PPC architecture)
I suggest setting these defines in the source code in "config.h".
Reply to: