summaryrefslogtreecommitdiff
path: root/xc/programs/Xserver/hw/kdrive/kmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'xc/programs/Xserver/hw/kdrive/kmap.c')
-rw-r--r--xc/programs/Xserver/hw/kdrive/kmap.c18
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
}