summaryrefslogtreecommitdiff
path: root/x11-drivers/xf86-video-ati/files/extra-src__radeon_kms.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11-drivers/xf86-video-ati/files/extra-src__radeon_kms.c')
-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 c8ed5680a9ef..9de83f0dfac5 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,