still no accelerated X ($#!$*)
Moritz Thomas
motho at gmx.net
Wed Jan 19 21:38:57 EST 2000
Finally I got it!
The problem was in the Xpmac code. If I remember correctly, this error
was some time ago in the kernel's "atyfb.c" as well. Probably this is also
fixed in current release of Xpmac
The following functions in "regmach.h":
#if defined (__powerpc__)
extern pointer mach64MemReg;
static inline void regw(volatile unsigned long regindex, unsigned long regdata)
{
register unsigned long base_addr = (unsigned long)mach64MemReg;
asm("stwbrx %0,%1,%2": : "r"(regdata), "r"(regindex), "r"(base_addr));
}
static inline unsigned long regr(volatile unsigned long regindex)
{
register unsigned long base_addr = (unsigned long)mach64MemReg, val;
asm("lwbrx %0,%1,%2": "=r"(val):"r"(regindex), "r"(base_addr));
return(val);
}
#endif
need to be replaced by:
#if defined (__powerpc__)
extern pointer mach64MemReg;
static inline void regw(volatile unsigned long regindex, unsigned long regdata)
{
register unsigned long base_addr = (unsigned long)mach64MemReg;
asm("stwbrx %0,%1,%2": : "r"(regdata), "b"(regindex), "r"(base_addr));
}
static inline unsigned long regr(volatile unsigned long regindex)
{
register unsigned long base_addr = (unsigned long)mach64MemReg, val;
asm("lwbrx %0,%1,%2": "=r"(val):"b"(regindex), "r"(base_addr));
return(val);
}
#endif
Don't know if this is correct (no clue about ppc assembly), but it works...
mo
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list