From b22e90bc8b9c7fe27556558c31f00e35e689a12e Mon Sep 17 00:00:00 2001 From: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri, 23 Aug 2013 15:59:06 +0100 Subject: [PATCH] overlay: Distinguish the root debugfs path and our dri node Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> --- overlay/debugfs.c | 13 ++++++++----- overlay/debugfs.h | 2 ++ overlay/gem-objects.c | 4 ++-- overlay/gpu-freq.c | 4 ++-- overlay/power.c | 2 +- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/overlay/debugfs.c b/overlay/debugfs.c index ccce2279a..9f3e5ccb5 100644 --- a/overlay/debugfs.c +++ b/overlay/debugfs.c @@ -26,10 +26,12 @@ #include <sys/mount.h> #include <errno.h> #include <stdio.h> +#include <string.h> #include "debugfs.h" char debugfs_path[128]; +char debugfs_dri_path[128]; int debugfs_init(void) { @@ -52,15 +54,16 @@ int debugfs_init(void) return errno; find_minor: + strcpy(debugfs_path, path); for (n = 0; n < 16; n++) { - int len = sprintf(debugfs_path, "%s/dri/%d", path, n); - sprintf(debugfs_path + len, "/i915_error_state"); - if (stat(debugfs_path, &st) == 0) { - debugfs_path[len] = '\0'; + int len = sprintf(debugfs_dri_path, "%s/dri/%d", path, n); + sprintf(debugfs_dri_path + len, "/i915_error_state"); + if (stat(debugfs_dri_path, &st) == 0) { + debugfs_dri_path[len] = '\0'; return 0; } } - debugfs_path[0] = '\0'; + debugfs_dri_path[0] = '\0'; return ENOENT; } diff --git a/overlay/debugfs.h b/overlay/debugfs.h index 0e5ad95d1..8a1c60a55 100644 --- a/overlay/debugfs.h +++ b/overlay/debugfs.h @@ -26,6 +26,8 @@ #define DEBUGFS_H extern char debugfs_path[128]; +extern char debugfs_dri_path[128]; + int debugfs_init(void); #endif /* DEBUGFS_H */ diff --git a/overlay/gem-objects.c b/overlay/gem-objects.c index 14427a737..8c8ae21b2 100644 --- a/overlay/gem-objects.c +++ b/overlay/gem-objects.c @@ -53,7 +53,7 @@ int gem_objects_init(struct gem_objects *obj) memset(obj, 0, sizeof(*obj)); - sprintf(buf, "%s/i915_gem_objects", debugfs_path); + sprintf(buf, "%s/i915_gem_objects", debugfs_dri_path); fd = open(buf, 0); if (fd < 0) return errno; @@ -99,7 +99,7 @@ int gem_objects_update(struct gem_objects *obj) freed = obj->comm; obj->comm = NULL; - sprintf(buf, "%s/i915_gem_objects", debugfs_path); + sprintf(buf, "%s/i915_gem_objects", debugfs_dri_path); fd = open(buf, 0); if (fd < 0) { ret = errno; diff --git a/overlay/gpu-freq.c b/overlay/gpu-freq.c index b34f66f29..0a400be67 100644 --- a/overlay/gpu-freq.c +++ b/overlay/gpu-freq.c @@ -38,7 +38,7 @@ int gpu_freq_init(struct gpu_freq *gf) memset(gf, 0, sizeof(*gf)); - sprintf(buf, "%s/i915_cur_delayinfo", debugfs_path); + sprintf(buf, "%s/i915_cur_delayinfo", debugfs_dri_path); fd = open(buf, 0); if (fd < 0) return gf->error = errno; @@ -85,7 +85,7 @@ int gpu_freq_update(struct gpu_freq *gf) if (gf->error) return gf->error; - sprintf(buf, "%s/i915_cur_delayinfo", debugfs_path); + sprintf(buf, "%s/i915_cur_delayinfo", debugfs_dri_path); fd = open(buf, 0); if (fd < 0) return gf->error = errno; diff --git a/overlay/power.c b/overlay/power.c index e69b1a19a..62aba8b5d 100644 --- a/overlay/power.c +++ b/overlay/power.c @@ -42,7 +42,7 @@ int power_init(struct power *power) memset(power, 0, sizeof(*power)); - sprintf(buf, "%s/i915_energy_uJ", debugfs_path); + sprintf(buf, "%s/i915_energy_uJ", debugfs_dri_path); fd = open(buf, 0); if (fd < 0) return power->error = errno; -- GitLab