summaryrefslogtreecommitdiff
path: root/package/xorg-server/patches/patch-hw_xfree86_os-support_linux_lnx_video_c
blob: 8c93131b1b54fe8c4dc1bdc328749f112f785884 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
--- xorg-server-1.7.5.orig/hw/xfree86/os-support/linux/lnx_video.c	2010-02-16 01:24:23.000000000 +0100
+++ xorg-server-1.7.5/hw/xfree86/os-support/linux/lnx_video.c	2010-03-08 21:31:20.000000000 +0100
@@ -497,7 +497,7 @@ volatile unsigned char *ioBase = NULL;
 Bool
 xf86EnableIO(void)
 {
-#if defined(__powerpc__)
+#if defined(__powerpc__) || defined(__mips__)
 	int fd;
 	unsigned int ioBase_phys;
 #endif
@@ -524,6 +524,20 @@ xf86EnableIO(void)
 #endif
 	}
 	close(fd);
+#elif defined(__mips__)
+	fd = open("/dev/mem", O_RDWR);
+	IOPortBase = (volatile unsigned char *)mmap(0, 0x20000,
+			PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x1fd00000);
+	if (IOPortBase == MAP_FAILED) {
+		xf86Msg(X_WARNING,
+			"xf86EnableIOPorts: Failed to map iobase (%s)\n",
+			strerror(errno));
+		return FALSE;
+	}
+	close(fd);
+	xf86Msg(X_WARNING,
+		"xf86EnableIOPorts: map iobase (%x)\n",
+		IOPortBase);
 #elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__arm__) && !defined(__m32r__)
         if (ioperm(0, 1024, 1) || iopl(3)) {
                 if (errno == ENODEV)