diff options
author | kwm <kwm@058c260c-8361-11dd-a0ac-aa2bafec7d09> | 2011-10-23 16:43:22 +0800 |
---|---|---|
committer | kwm <kwm@058c260c-8361-11dd-a0ac-aa2bafec7d09> | 2011-10-23 16:43:22 +0800 |
commit | b03af042fdd042b8dd2a6a5354b1c87a47307688 (patch) | |
tree | bcb3ee9545518a3745eab6c894e2ccf539c78e42 | |
parent | 043b249171b9f1cd5d0457f5074ea6470dde8e5d (diff) | |
download | xorg-devel-ports-b03af042fdd042b8dd2a6a5354b1c87a47307688.tar.gz xorg-devel-ports-b03af042fdd042b8dd2a6a5354b1c87a47307688.tar.zst xorg-devel-ports-b03af042fdd042b8dd2a6a5354b1c87a47307688.zip |
Revert the patch. Somehow this breaks on my hybrid sandybridge system.
Also reported by another users.
git-svn-id: https://trillian.chruetertee.ch/svn/ports/branches/xorg-dev@319 058c260c-8361-11dd-a0ac-aa2bafec7d09
-rw-r--r-- | graphics/libdrm/Makefile | 2 | ||||
-rw-r--r-- | graphics/libdrm/files/extra-xf86drmMode.c | 48 |
2 files changed, 14 insertions, 36 deletions
diff --git a/graphics/libdrm/Makefile b/graphics/libdrm/Makefile index b8703ae..2ccd93e 100644 --- a/graphics/libdrm/Makefile +++ b/graphics/libdrm/Makefile @@ -7,7 +7,7 @@ PORTNAME= libdrm PORTVERSION= 2.4.26 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= graphics x11 MASTER_SITES= http://dri.freedesktop.org/libdrm/ diff --git a/graphics/libdrm/files/extra-xf86drmMode.c b/graphics/libdrm/files/extra-xf86drmMode.c index 8d6934e..d91a923 100644 --- a/graphics/libdrm/files/extra-xf86drmMode.c +++ b/graphics/libdrm/files/extra-xf86drmMode.c @@ -1,6 +1,15 @@ --- xf86drmMode.c.orig 2010-09-08 14:23:39.000000000 +0200 -+++ xf86drmMode.c 2011-10-02 14:45:33.000000000 +0200 -@@ -659,7 +659,7 @@ int drmModeConnectorSetProperty(int fd, ++++ xf86drmMode.c 2011-07-18 18:59:11.000000000 +0200 +@@ -54,7 +54,7 @@ + + static inline DRM_IOCTL(int fd, int cmd, void *arg) + { +- int ret = drmIoctl(fd, cmd, arg); ++ int ret = drmIoctl(fd, (unsigned)cmd, arg); + return ret < 0 ? -errno : ret; + } + +@@ -659,7 +659,7 @@ */ int drmCheckModesettingSupported(const char *busid) { @@ -9,43 +18,12 @@ char pci_dev_dir[1024]; int domain, bus, dev, func; DIR *sysdir; -@@ -709,6 +709,39 @@ int drmCheckModesettingSupported(const c +@@ -709,6 +709,8 @@ closedir(sysdir); if (found) return 0; +#elif defined(__FreeBSD__) -+ char kbusid[1024], sbusid[1024]; -+ char oid[128]; -+ int domain, bus, dev, func; -+ int i, modesetting, ret; -+ size_t len; -+ -+ ret = sscanf(busid, "pci:%04x:%02x:%02x.%d", &domain, &bus, &dev, -+ &func); -+ if (ret != 4) -+ return -EINVAL; -+ snprintf(kbusid, sizeof(kbusid), "pci:%04x:%02x:%02x.%d", domain, bus, -+ dev, func); -+ -+ /* How many GPUs do we expect in the machine ? */ -+ for (i = 0; i < 16; i++) { -+ snprintf(oid, sizeof(oid), "hw.dri.%d.busid", i); -+ len = sizeof(sbusid); -+ ret = sysctlbyname(oid, sbusid, &len, NULL, 0); -+ if (ret == -1) { -+ if (errno == ENOENT) -+ continue; -+ return -EINVAL; -+ } -+ if (strcmp(sbusid, kbusid) != 0) -+ continue; -+ snprintf(oid, sizeof(oid), "hw.dri.%d.modesetting", i); -+ len = sizeof(modesetting); -+ ret = sysctlbyname(oid, &modesetting, &len, NULL, 0); -+ if (ret == -1 || len != sizeof(modesetting)) -+ return -EINVAL; -+ return (modesetting ? 0 : -ENOSYS); -+ } ++ return 0; #endif return -ENOSYS; |