--- programs/Xserver/hw/xfree86/os-support/bsd/ppc_video.c~ 2005-07-03 16:01:30.000000000 +0900 +++ programs/Xserver/hw/xfree86/os-support/bsd/ppc_video.c 2007-04-08 00:32:06.000000000 +0900 @@ -47,6 +47,7 @@ /***************************************************************************/ /* Video Memory Mapping section */ /***************************************************************************/ +static int devMemFd = -1; #ifndef __OpenBSD__ #define DEV_MEM "/dev/mem" @@ -74,18 +75,31 @@ { int fd = xf86Info.screenFd; pointer base; -#ifdef DEBUG - xf86MsgVerb(X_INFO, 3, "mapVidMem %lx, %lx, fd = %d", +#if 1 + xf86MsgVerb(X_INFO, 1, "mapVidMem %lx, %lx, fd = %d\n", Base, Size, fd); #endif +#if 0 base = mmap(0, Size, (flags & VIDMEM_READONLY) ? PROT_READ : (PROT_READ | PROT_WRITE), MAP_SHARED, fd, Base); +#endif + if (devMemFd < 0) + if ((devMemFd = open(DEV_MEM, O_RDWR)) < 0) + { + FatalError("ppcMapVidMem: failed to open %s (%s)\n", + "/dev/mem", strerror(errno)); + } + + base = mmap(0, Size, PROT_READ | PROT_WRITE, + /*(flags & VIDMEM_READONLY) ? + PROT_READ : (PROT_READ | PROT_WRITE),*/ + MAP_SHARED, devMemFd, Base); if (base == MAP_FAILED) - FatalError("%s: could not mmap screen [s=%x,a=%x] (%s)", - "xf86MapVidMem", Size, Base, strerror(errno)); + FatalError("%s: could not mmap screen [s=%x,a=%x] (%s)\n", + "ppcMapVidMem", Size, Base, strerror(errno)); return base; } --- programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c.orig 2005-12-15 04:41:19.000000000 +0900 +++ programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c 2007-04-08 00:39:03.000000000 +0900 @@ -4882,8 +4882,10 @@ RADEONPreInitDDC(pScrn); +#if !defined(__powerpc__) RADEONGetBIOSInfo(pScrn, pInt10); if (!RADEONQueryConnectedMonitors(pScrn)) goto fail; +#endif RADEONGetClockInfo(pScrn); /* collect MergedFB options */