libdrm: drmGetMinorNameFromFd: Fix FreeBSD variant
[platform/upstream/libdrm.git] / xf86drmMode.c
index 2399e8e..4052e03 100644 (file)
@@ -800,21 +800,13 @@ drm_public int drmCheckModesettingSupported(const char *busid)
        if (found)
                return 0;
 #elif defined (__FreeBSD__) || defined (__FreeBSD_kernel__)
-       char kbusid[1024], sbusid[1024];
+       char 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++) {
+       for (i = 0; i < 10; i++) {
                snprintf(oid, sizeof(oid), "hw.dri.%d.busid", i);
                len = sizeof(sbusid);
                ret = sysctlbyname(oid, sbusid, &len, NULL, 0);
@@ -823,7 +815,7 @@ drm_public int drmCheckModesettingSupported(const char *busid)
                                continue;
                        return -EINVAL;
                }
-               if (strcmp(sbusid, kbusid) != 0)
+               if (strcmp(sbusid, busid) != 0)
                        continue;
                snprintf(oid, sizeof(oid), "hw.dri.%d.modesetting", i);
                len = sizeof(modesetting);