diff options
-rw-r--r-- | radeontool.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/radeontool.c b/radeontool.c index 55e958e..5bc8cc5 100644 --- a/radeontool.c +++ b/radeontool.c @@ -73,7 +73,7 @@ static void radeon_set32(unsigned long offset, const char *name, unsigned int va printf("internal error\n"); exit(-2); }; -#ifdef __powerpc__ +#if 0 //def __powerpc__ __asm__ __volatile__ ("stwbrx %1,%2,%3\n\t" "eieio" : "=m" (*((volatile unsigned int *)radeon_cntl_mem+offset)) @@ -358,10 +358,19 @@ void radeon_reg_match(const char *pattern) void radeon_reg_set(const char *name, unsigned value) { int i; + unsigned long address; + + if (name[0]=='0' && name[1]=='x') { + address = strtoul(&(name[2]), NULL, 16); + printf("OLD: %s (%04x)\t0x%08x\n", name, address, radeon_get32(address, name)); + radeon_set32(address, name, value); + printf("NEW: %s (%04x)\t0x%08x\n", name, address, radeon_get32(address, name)); + return; + } for (i=0;i<sizeof(reg_list)/sizeof(reg_list[0]);i++) { if (fnmatch(name, reg_list[i].name, 0) == 0) { const char *name = reg_list[i].name; - unsigned address = reg_list[i].address; + address = reg_list[i].address; printf("OLD: %s (%04x)\t0x%08x\n", name, address, radeon_get32(address, name)); radeon_set32(address, name, value); printf("NEW: %s (%04x)\t0x%08x\n", name, address, radeon_get32(address, name)); |