diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2014-01-27 10:34:16 -0500 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2014-02-13 19:53:15 -0500 |
commit | 8481d208cee0e10250d5f34487defec414470bb5 (patch) | |
tree | b737362d4e1b320f387102d18b6b2b8759653cc9 | |
parent | 0320ba9988f370957bb029e846f51d485dd606f4 (diff) |
pipe-loader: Add auth_x parameter to pipe_loader_drm_probe_fd()
The caller can use this boolean parameter to tell the pipe-loader
to authenticate with the X server when probing a file descriptor.
-rw-r--r-- | src/gallium/auxiliary/pipe-loader/pipe_loader.h | 6 | ||||
-rw-r--r-- | src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c | 8 | ||||
-rw-r--r-- | src/gallium/targets/gbm/gbm.c | 2 |
3 files changed, 11 insertions, 5 deletions
diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader.h b/src/gallium/auxiliary/pipe-loader/pipe_loader.h index e0525dfbe02..006401150da 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader.h +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader.h @@ -128,9 +128,13 @@ pipe_loader_drm_probe(struct pipe_loader_device **devs, int ndev); * This function is platform-specific. * * \sa pipe_loader_probe + * + * \param auth_x If true, the pipe-loader will attempt to + * authenticate with the X server. */ boolean -pipe_loader_drm_probe_fd(struct pipe_loader_device **dev, int fd); +pipe_loader_drm_probe_fd(struct pipe_loader_device **dev, int fd, + boolean auth_x); #endif diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c index 597a9b5a3d8..7abdec33428 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c @@ -112,7 +112,8 @@ disconnect: } boolean -pipe_loader_drm_probe_fd(struct pipe_loader_device **dev, int fd) +pipe_loader_drm_probe_fd(struct pipe_loader_device **dev, int fd, + boolean auth_x) { struct pipe_loader_drm_device *ddev = CALLOC_STRUCT(pipe_loader_drm_device); int vendor_id, chip_id; @@ -127,7 +128,8 @@ pipe_loader_drm_probe_fd(struct pipe_loader_device **dev, int fd) ddev->base.ops = &pipe_loader_drm_ops; ddev->fd = fd; - pipe_loader_drm_x_auth(fd); + if (auth_x) + pipe_loader_drm_x_auth(fd); ddev->base.driver_name = loader_get_driver_for_fd(fd, _LOADER_GALLIUM); if (!ddev->base.driver_name) @@ -159,7 +161,7 @@ pipe_loader_drm_probe(struct pipe_loader_device **devs, int ndev) if (fd < 0) continue; - if (j >= ndev || !pipe_loader_drm_probe_fd(&devs[j], fd)) + if (j >= ndev || !pipe_loader_drm_probe_fd(&devs[j], fd, true)) close(fd); j++; diff --git a/src/gallium/targets/gbm/gbm.c b/src/gallium/targets/gbm/gbm.c index 8f460573b56..deaa401ad11 100644 --- a/src/gallium/targets/gbm/gbm.c +++ b/src/gallium/targets/gbm/gbm.c @@ -52,7 +52,7 @@ gallium_screen_create(struct gbm_gallium_drm_device *gdrm) #ifdef HAVE_PIPE_LOADER_DRM int ret; - ret = pipe_loader_drm_probe_fd(&dev, gdrm->base.base.fd); + ret = pipe_loader_drm_probe_fd(&dev, gdrm->base.base.fd, true); if (!ret) return -1; #endif /* HAVE_PIPE_LOADER_DRM */ |