summaryrefslogtreecommitdiff
path: root/xf86drm.c
diff options
context:
space:
mode:
authorJonathan Gray <jsg@jsg.id.au>2019-05-13 02:52:04 +1000
committerEric Engestrom <eric.engestrom@intel.com>2019-07-03 12:28:15 +0100
commit293b95e81531dbfc1327cbaae125cc13e7fb074d (patch)
treee42481a81ae09c323a7bd05e253abc3b59762add /xf86drm.c
parent13e2c356039ab5270174c9401c120bc9df5e23a6 (diff)
downloaddrm-293b95e81531dbfc1327cbaae125cc13e7fb074d.tar.gz
xf86drm: open correct render node on non-linux
drm render nodes have the same major as drm primary devices but offset the minor by a base of 128. I expected the name of the device to have numbering starting at 0 when these non-linux codepaths were added (before OpenBSD had render nodes). Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Acked-by: Eric Engestrom <eric.engestrom@intel.com>
Diffstat (limited to 'xf86drm.c')
-rw-r--r--xf86drm.c24
1 files changed, 6 insertions, 18 deletions
diff --git a/xf86drm.c b/xf86drm.c
index 39a82063..33624305 100644
--- a/xf86drm.c
+++ b/xf86drm.c
@@ -2904,7 +2904,7 @@ static char *drmGetMinorNameForFD(int fd, int type)
char buf[PATH_MAX + 1];
const char *dev_name;
unsigned int maj, min;
- int n, base;
+ int n;
if (fstat(fd, &sbuf))
return NULL;
@@ -2929,11 +2929,7 @@ static char *drmGetMinorNameForFD(int fd, int type)
return NULL;
};
- base = drmGetMinorBase(type);
- if (base < 0)
- return NULL;
-
- n = snprintf(buf, sizeof(buf), dev_name, DRM_DIR_NAME, min - base);
+ n = snprintf(buf, sizeof(buf), dev_name, DRM_DIR_NAME, min);
if (n == -1 || n >= sizeof(buf))
return NULL;
@@ -3827,7 +3823,7 @@ drm_public int drmGetDevice2(int fd, uint32_t flags, drmDevicePtr *device)
char node[PATH_MAX + 1];
const char *dev_name;
int node_type, subsystem_type;
- int maj, min, n, ret, base;
+ int maj, min, n, ret;
if (fd == -1 || device == NULL)
return -EINVAL;
@@ -3859,11 +3855,7 @@ drm_public int drmGetDevice2(int fd, uint32_t flags, drmDevicePtr *device)
return -EINVAL;
};
- base = drmGetMinorBase(node_type);
- if (base < 0)
- return -EINVAL;
-
- n = snprintf(node, PATH_MAX, dev_name, DRM_DIR_NAME, min - base);
+ n = snprintf(node, PATH_MAX, dev_name, DRM_DIR_NAME, min);
if (n == -1 || n >= PATH_MAX)
return -errno;
if (stat(node, &sbuf))
@@ -4083,7 +4075,7 @@ drm_public char *drmGetDeviceNameFromFd2(int fd)
char node[PATH_MAX + 1];
const char *dev_name;
int node_type;
- int maj, min, n, base;
+ int maj, min, n;
if (fstat(fd, &sbuf))
return NULL;
@@ -4112,11 +4104,7 @@ drm_public char *drmGetDeviceNameFromFd2(int fd)
return NULL;
};
- base = drmGetMinorBase(node_type);
- if (base < 0)
- return NULL;
-
- n = snprintf(node, PATH_MAX, dev_name, DRM_DIR_NAME, min - base);
+ n = snprintf(node, PATH_MAX, dev_name, DRM_DIR_NAME, min);
if (n == -1 || n >= PATH_MAX)
return NULL;