summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2011-03-28 21:16:12 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2011-03-28 21:16:12 +0200
commit7f685b9d8f91f2e3c3cd56ef8e827f722e98f779 (patch)
tree5254df4e61bc06c869bcb6d6bf233938d791ecf6
parent3dd9d89f6366623d39035679c921749d945a2652 (diff)
i915g: use drm ioctl to get pci devidfor-master
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--src/gallium/winsys/i915/drm/i915_drm_winsys.c26
1 files changed, 8 insertions, 18 deletions
diff --git a/src/gallium/winsys/i915/drm/i915_drm_winsys.c b/src/gallium/winsys/i915/drm/i915_drm_winsys.c
index 2c3b508d05..a2b61cde2c 100644
--- a/src/gallium/winsys/i915/drm/i915_drm_winsys.c
+++ b/src/gallium/winsys/i915/drm/i915_drm_winsys.c
@@ -15,24 +15,14 @@
static void
i915_drm_get_device_id(unsigned int *device_id)
{
- char path[512];
- FILE *file;
- void *shutup_gcc;
-
- /*
- * FIXME: Fix this up to use a drm ioctl or whatever.
- */
-
- snprintf(path, sizeof(path), "/sys/class/drm/card0/device/device");
- file = fopen(path, "r");
- if (!file) {
- return;
- }
-
- shutup_gcc = fgets(path, sizeof(path), file);
- (void) shutup_gcc;
- sscanf(path, "%x", device_id);
- fclose(file);
+ int ret;
+ struct drm_i915_getparam gp;
+
+ gp.param = I915_PARAM_CHIPSET_ID;
+ gp.value = (int *)devid;
+
+ ret = ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp, sizeof(gp));
+ assert(ret == 0);
}
static void