From 9574cb1a3de0dfe45c59420e2cb9a74fc23baecc Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 23 Aug 2013 15:51:21 +0100 Subject: overlay: Search for right debugfs path Signed-off-by: Chris Wilson --- overlay/debugfs.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'overlay/debugfs.c') diff --git a/overlay/debugfs.c b/overlay/debugfs.c index 644f434b..ccce2279 100644 --- a/overlay/debugfs.c +++ b/overlay/debugfs.c @@ -25,15 +25,25 @@ #include #include #include +#include #include "debugfs.h" +char debugfs_path[128]; + int debugfs_init(void) { + const char *path = "/sys/kernel/debug"; struct stat st; + int n; + + if (stat("/debug/dri", &st) == 0) { + path = "/debug/dri"; + goto find_minor; + } if (stat("/sys/kernel/debug/dri", &st) == 0) - return 0; + goto find_minor; if (stat("/sys/kernel/debug", &st)) return errno; @@ -41,5 +51,16 @@ int debugfs_init(void) if (mount("debug", "/sys/kernel/debug", "debugfs", 0, 0)) return errno; - return 0; +find_minor: + 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'; + return 0; + } + } + + debugfs_path[0] = '\0'; + return ENOENT; } -- cgit v1.2.3