intel_error_decode: First try /sys/drm/card0/error for the error-state
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 7 Aug 2013 22:41:54 +0000 (23:41 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 7 Aug 2013 22:43:25 +0000 (23:43 +0100)
As the sysfs is almost always mounted and readable, we have a higher
success rate checking for our error state there than in debugfs.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
tools/intel_error_decode.c

index b3d7efb..3917737 100644 (file)
@@ -504,17 +504,21 @@ main(int argc, char *argv[])
 
        if (argc == 1) {
                if (isatty(0)) {
-                       path = "/debug/dri";
+                       path = "/sys/class/drm/card0/error";
                        error = stat(path, &st);
                        if (error != 0) {
+                               path = "/debug/dri";
+                               error = stat(path, &st);
+                       }
+                       if (error != 0) {
                                path = "/sys/kernel/debug/dri";
                                error = stat(path, &st);
-                               if (error != 0) {
-                                       errx(1,
-                                              "Couldn't find i915 debugfs directory.\n\n"
-                                              "Is debugfs mounted? You might try mounting it with a command such as:\n\n"
-                                              "\tsudo mount -t debugfs debugfs /sys/kernel/debug\n");
-                               }
+                       }
+                       if (error != 0) {
+                               errx(1,
+                                    "Couldn't find i915 debugfs directory.\n\n"
+                                    "Is debugfs mounted? You might try mounting it with a command such as:\n\n"
+                                    "\tsudo mount -t debugfs debugfs /sys/kernel/debug\n");
                        }
                } else {
                        read_data_file(stdin);