diff options
Diffstat (limited to 'xc/programs/Xserver/hw/kdrive/kmap.c')
-rw-r--r-- | xc/programs/Xserver/hw/kdrive/kmap.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/xc/programs/Xserver/hw/kdrive/kmap.c b/xc/programs/Xserver/hw/kdrive/kmap.c index 0f96cca96..3602023e5 100644 --- a/xc/programs/Xserver/hw/kdrive/kmap.c +++ b/xc/programs/Xserver/hw/kdrive/kmap.c @@ -21,7 +21,7 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/kdrive/kmap.c,v 1.7 2001/03/30 02:15:20 keithp Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/kdrive/kmap.c,v 1.10 2001/07/24 21:26:17 keithp Exp $ */ #include "kdrive.h" @@ -67,7 +67,11 @@ KdMapDevice (CARD32 addr, CARD32 size) void *a; int fd; +#ifdef __arm__ + fd = open ("/dev/mem", O_RDWR|O_SYNC); +#else fd = open ("/dev/mem", O_RDWR); +#endif if (fd < 0) FatalError ("KdMapDevice: failed to open /dev/mem (%s)\n", strerror (errno)); @@ -117,7 +121,7 @@ KdSetMappedMode (CARD32 addr, CARD32 size, int mode) mtrr = open ("/proc/mtrr", 2); if (mtrr > 0) { - base = addr & ~((1<22)-1); + base = addr & ~((1<<22)-1); bound = ((addr + size) + ((1<<22) - 1)) & ~((1<<22) - 1); switch (mode) { case KD_MAPPED_MODE_REGISTERS: @@ -131,7 +135,9 @@ KdSetMappedMode (CARD32 addr, CARD32 size, int mode) sentry.size = bound - base; sentry.type = type; - ioctl (mtrr, MTRRIOC_ADD_ENTRY, &sentry); + if (ioctl (mtrr, MTRRIOC_ADD_ENTRY, &sentry) < 0) + ErrorF ("MTRRIOC_ADD_ENTRY failed 0x%x 0x%x %d (errno %d)\n", + base, bound - base, type, errno); } #endif } @@ -150,7 +156,7 @@ KdResetMappedMode (CARD32 addr, CARD32 size, int mode) mtrr = open ("/proc/mtrr", 2); if (mtrr > 0) { - base = addr & ~((1<22)-1); + base = addr & ~((1<<22)-1); bound = ((addr + size) + ((1<<22) - 1)) & ~((1<<22) - 1); switch (mode) { case KD_MAPPED_MODE_REGISTERS: @@ -164,7 +170,9 @@ KdResetMappedMode (CARD32 addr, CARD32 size, int mode) sentry.size = bound - base; sentry.type = type; - ioctl (mtrr, MTRRIOC_DEL_ENTRY, &sentry); + if (ioctl (mtrr, MTRRIOC_DEL_ENTRY, &sentry) < 0) + ErrorF ("MTRRIOC_DEL_ENTRY failed 0x%x 0x%x %d (errno %d)\n", + base, bound - base, type, errno); } #endif } |