summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmil Velikov <emil.l.velikov@gmail.com>2014-01-11 05:19:36 +0000
committerEmil Velikov <emil.l.velikov@gmail.com>2014-01-18 18:52:07 +0000
commit26458420d8802a765cf71c75ef9f3b6da6bdfd8d (patch)
treee22f08f0753f0740592849a8b15ee3da80f5446d
parent3d3ae75c86f9ed47d86e471e4043827bb7731e92 (diff)
downloadexternal_mesa3d-26458420d8802a765cf71c75ef9f3b6da6bdfd8d.zip
external_mesa3d-26458420d8802a765cf71c75ef9f3b6da6bdfd8d.tar.gz
external_mesa3d-26458420d8802a765cf71c75ef9f3b6da6bdfd8d.tar.bz2
pipe-loader: add support for non-pci (platform) devices
Culled out of the "loader: refactor duplicated code into loader util lib" patch by Rob Clark. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Rob Clark <robdclark@gmail.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
-rw-r--r--src/gallium/auxiliary/pipe-loader/pipe_loader.h1
-rw-r--r--src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c2
-rw-r--r--src/gallium/state_trackers/clover/core/device.cpp2
3 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader.h b/src/gallium/auxiliary/pipe-loader/pipe_loader.h
index 34e257e..e0525df 100644
--- a/src/gallium/auxiliary/pipe-loader/pipe_loader.h
+++ b/src/gallium/auxiliary/pipe-loader/pipe_loader.h
@@ -44,6 +44,7 @@ struct pipe_screen;
enum pipe_loader_device_type {
PIPE_LOADER_DEVICE_SOFTWARE,
PIPE_LOADER_DEVICE_PCI,
+ PIPE_LOADER_DEVICE_PLATFORM,
NUM_PIPE_LOADER_DEVICE_TYPES
};
diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
index 2a50236..d70a428 100644
--- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
+++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
@@ -121,6 +121,8 @@ pipe_loader_drm_probe_fd(struct pipe_loader_device **dev, int fd)
ddev->base.type = PIPE_LOADER_DEVICE_PCI;
ddev->base.u.pci.vendor_id = vendor_id;
ddev->base.u.pci.chip_id = chip_id;
+ } else {
+ ddev->base.type = PIPE_LOADER_DEVICE_PLATFORM;
}
ddev->base.ops = &pipe_loader_drm_ops;
ddev->fd = fd;
diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp
index e5e429a..76a49d0 100644
--- a/src/gallium/state_trackers/clover/core/device.cpp
+++ b/src/gallium/state_trackers/clover/core/device.cpp
@@ -63,6 +63,7 @@ device::type() const {
case PIPE_LOADER_DEVICE_SOFTWARE:
return CL_DEVICE_TYPE_CPU;
case PIPE_LOADER_DEVICE_PCI:
+ case PIPE_LOADER_DEVICE_PLATFORM:
return CL_DEVICE_TYPE_GPU;
default:
assert(0);
@@ -74,6 +75,7 @@ cl_uint
device::vendor_id() const {
switch (ldev->type) {
case PIPE_LOADER_DEVICE_SOFTWARE:
+ case PIPE_LOADER_DEVICE_PLATFORM:
return 0;
case PIPE_LOADER_DEVICE_PCI:
return ldev->u.pci.vendor_id;