summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeising <zeising@058c260c-8361-11dd-a0ac-aa2bafec7d09>2013-12-13 20:05:07 +0800
committerzeising <zeising@058c260c-8361-11dd-a0ac-aa2bafec7d09>2013-12-13 20:05:07 +0800
commitb48b6aa8dece79cd8e65b81598a626b815d1ea6c (patch)
tree2628d0cdc40177b0f3ff1ec2957d25d22d44c8dd
parente24512935d6f2ed9f94bcd825ec36d33143993ca (diff)
downloadxorg-devel-ports-b48b6aa8dece79cd8e65b81598a626b815d1ea6c.tar
xorg-devel-ports-b48b6aa8dece79cd8e65b81598a626b815d1ea6c.tar.gz
xorg-devel-ports-b48b6aa8dece79cd8e65b81598a626b815d1ea6c.tar.bz2
xorg-devel-ports-b48b6aa8dece79cd8e65b81598a626b815d1ea6c.tar.lz
xorg-devel-ports-b48b6aa8dece79cd8e65b81598a626b815d1ea6c.tar.xz
xorg-devel-ports-b48b6aa8dece79cd8e65b81598a626b815d1ea6c.tar.zst
xorg-devel-ports-b48b6aa8dece79cd8e65b81598a626b815d1ea6c.zip
Add patch from dumbbell to fix autoloading of kernel driver.
git-svn-id: https://trillian.chruetertee.ch/svn/ports/trunk@1327 058c260c-8361-11dd-a0ac-aa2bafec7d09
-rw-r--r--x11-drivers/xf86-video-ati/files/extra-src__radeon_kms.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/x11-drivers/xf86-video-ati/files/extra-src__radeon_kms.c b/x11-drivers/xf86-video-ati/files/extra-src__radeon_kms.c
index c8ed568..9de83f0 100644
--- a/x11-drivers/xf86-video-ati/files/extra-src__radeon_kms.c
+++ b/x11-drivers/xf86-video-ati/files/extra-src__radeon_kms.c
@@ -1,6 +1,15 @@
--- src/radeon_kms.c.orig 2013-08-07 10:44:09.000000000 +0200
-+++ src/radeon_kms.c 2013-08-31 01:20:44.370468797 +0200
-@@ -270,7 +270,7 @@
++++ src/radeon_kms.c 2013-08-31 19:29:11.369001510 +0200
+@@ -30,6 +30,8 @@
+
+ #include <errno.h>
+ #include <sys/ioctl.h>
++#include <sys/param.h>
++#include <sys/linker.h>
+ /* Driver data structures */
+ #include "radeon.h"
+ #include "radeon_reg.h"
+@@ -270,7 +272,7 @@
radeon_dirty_update(ScreenPtr screen)
{
RegionPtr region;
@@ -9,12 +18,20 @@
if (xorg_list_is_empty(&screen->pixmap_dirty_list))
return;
-@@ -606,7 +606,7 @@
+@@ -606,6 +608,16 @@
dev->domain, dev->bus, dev->dev, dev->func);
#endif
-- info->dri2.drm_fd = drmOpen("radeon", busid);
-+ info->dri2.drm_fd = drmOpen("radeonkms", busid);
++ err = kldload("radeonkms");
++ if (err == -1 && errno != EEXIST) {
++
++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
++ "[drm] Failed to load kernel module for %s: %s\n",
++ busid, strerror(errno));
++ free(busid);
++ return FALSE;
++ }
++
+ info->dri2.drm_fd = drmOpen("radeon", busid);
if (info->dri2.drm_fd == -1) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,