summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEmil Velikov <emil.l.velikov@gmail.com>2015-06-29 12:36:45 +0100
committerEmil Velikov <emil.l.velikov@gmail.com>2015-07-13 19:52:48 +0100
commit69a1b9959e59653da262185c4e2cf57d24939b19 (patch)
tree60ec4a1f1cef14c708d8b0711d0d9192d1e185dc /src
parentde5c2b6f2b53924bceab6f4b8255d8e9dcad21b4 (diff)
pipe-loader: drop support for non-render node devices
Render nodes have been around for quite some time. Removing support via the master/primary node allows us to clean up the conditional compilation and simplify the build greatly. For example currently we the pipe-loader, which explicitly links against xcb and friends (for X auth) if found at compile-time. That would cause problems as one will be forced to use X/xcb, even if it's a headless system that is used for opencl. v2: Clarify the linking topic in the commit message. Cc: Tom Stellard <thomas.stellard@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c60
1 files changed, 1 insertions, 59 deletions
diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
index ffeb29906b5..009e1dfdf6f 100644
--- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
+++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
@@ -169,14 +169,6 @@ pipe_loader_drm_probe_fd(struct pipe_loader_device **dev, int fd,
}
static int
-open_drm_minor(int minor)
-{
- char path[PATH_MAX];
- snprintf(path, sizeof(path), DRM_DEV_NAME, DRM_DIR_NAME, minor);
- return open(path, O_RDWR, 0);
-}
-
-static int
open_drm_render_node_minor(int minor)
{
char path[PATH_MAX];
@@ -188,15 +180,8 @@ open_drm_render_node_minor(int minor)
int
pipe_loader_drm_probe(struct pipe_loader_device **devs, int ndev)
{
- int i, k, fd, num_render_node_devs;
- int j = 0;
+ int i, j, fd;
- struct {
- unsigned vendor_id;
- unsigned chip_id;
- } render_node_devs[DRM_RENDER_NODE_MAX_NODES];
-
- /* Look for render nodes first */
for (i = DRM_RENDER_NODE_MIN_MINOR, j = 0;
i <= DRM_RENDER_NODE_MAX_MINOR; i++) {
fd = open_drm_render_node_minor(i);
@@ -209,9 +194,6 @@ pipe_loader_drm_probe(struct pipe_loader_device **devs, int ndev)
continue;
}
- render_node_devs[j].vendor_id = dev->u.pci.vendor_id;
- render_node_devs[j].chip_id = dev->u.pci.chip_id;
-
if (j < ndev) {
devs[j] = dev;
} else {
@@ -221,46 +203,6 @@ pipe_loader_drm_probe(struct pipe_loader_device **devs, int ndev)
j++;
}
- num_render_node_devs = j;
-
- /* Next look for drm devices. */
- for (i = 0; i < DRM_MAX_MINOR; i++) {
- struct pipe_loader_device *dev;
- boolean duplicate = FALSE;
- fd = open_drm_minor(i);
- if (fd < 0)
- continue;
-
- if (!pipe_loader_drm_probe_fd(&dev, fd, true)) {
- close(fd);
- continue;
- }
-
- /* Check to make sure we aren't already accessing this device via
- * render nodes.
- */
- for (k = 0; k < num_render_node_devs; k++) {
- if (dev->u.pci.vendor_id == render_node_devs[k].vendor_id &&
- dev->u.pci.chip_id == render_node_devs[k].chip_id) {
- close(fd);
- dev->ops->release(&dev);
- duplicate = TRUE;
- break;
- }
- }
-
- if (duplicate)
- continue;
-
- if (j < ndev) {
- devs[j] = dev;
- } else {
- dev->ops->release(&dev);
- }
-
- j++;
- }
-
return j;
}