diff options
Diffstat (limited to 'package/xorg-server/patches/patch-hw_xfree86_os-support_linux_lnx_video_c')
-rw-r--r-- | package/xorg-server/patches/patch-hw_xfree86_os-support_linux_lnx_video_c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/package/xorg-server/patches/patch-hw_xfree86_os-support_linux_lnx_video_c b/package/xorg-server/patches/patch-hw_xfree86_os-support_linux_lnx_video_c new file mode 100644 index 000000000..8c93131b1 --- /dev/null +++ b/package/xorg-server/patches/patch-hw_xfree86_os-support_linux_lnx_video_c @@ -0,0 +1,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) |