]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe/debugfs: Add node to dump guc log to dmesg
authorLucas De Marchi <lucas.demarchi@intel.com>
Fri, 31 Jan 2025 17:17:16 +0000 (09:17 -0800)
committerLucas De Marchi <lucas.demarchi@intel.com>
Wed, 12 Feb 2025 03:41:30 +0000 (19:41 -0800)
Currently xe_guc_log_print_dmesg() is unused, as it's expected
developers to add those calls when needed. However it makes it hard to
guarantee it's working as nothing is testing it. Add a node in debugfs
so it can be tested. This is purely for testing purposes since with the
device probed and working, the guc log can be obtained by the regular
debugfs file.

Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250131171716.3998432-1-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_guc_debugfs.c

index 0aff1d462bc01173c0f538b2abc8a7f65a6d0297..c569ff456e7416772e3e1a74e4ee49ff927ec492 100644 (file)
@@ -48,6 +48,18 @@ static int guc_log(struct seq_file *m, void *data)
        return 0;
 }
 
+static int guc_log_dmesg(struct seq_file *m, void *data)
+{
+       struct xe_guc *guc = node_to_guc(m->private);
+       struct xe_device *xe = guc_to_xe(guc);
+
+       xe_pm_runtime_get(xe);
+       xe_guc_log_print_dmesg(&guc->log);
+       xe_pm_runtime_put(xe);
+
+       return 0;
+}
+
 static int guc_ctb(struct seq_file *m, void *data)
 {
        struct xe_guc *guc = node_to_guc(m->private);
@@ -77,6 +89,7 @@ static int guc_pc(struct seq_file *m, void *data)
 static const struct drm_info_list debugfs_list[] = {
        {"guc_info", guc_info, 0},
        {"guc_log", guc_log, 0},
+       {"guc_log_dmesg", guc_log_dmesg, 0},
        {"guc_ctb", guc_ctb, 0},
        {"guc_pc", guc_pc, 0},
 };