1*00142bceSLucas De Marchi // SPDX-License-Identifier: MIT
2*00142bceSLucas De Marchi 
3*00142bceSLucas De Marchi /*
4*00142bceSLucas De Marchi  * Copyright © 2019 Intel Corporation
5*00142bceSLucas De Marchi  */
6*00142bceSLucas De Marchi 
7*00142bceSLucas De Marchi #include <drm/drm_print.h>
8*00142bceSLucas De Marchi 
9*00142bceSLucas De Marchi #include "i915_drv.h" /* for_each_engine! */
10*00142bceSLucas De Marchi #include "intel_engine.h"
11*00142bceSLucas De Marchi #include "intel_gt_debugfs.h"
12*00142bceSLucas De Marchi #include "intel_gt_engines_debugfs.h"
13*00142bceSLucas De Marchi 
engines_show(struct seq_file * m,void * data)14*00142bceSLucas De Marchi static int engines_show(struct seq_file *m, void *data)
15*00142bceSLucas De Marchi {
16*00142bceSLucas De Marchi 	struct intel_gt *gt = m->private;
17*00142bceSLucas De Marchi 	struct intel_engine_cs *engine;
18*00142bceSLucas De Marchi 	enum intel_engine_id id;
19*00142bceSLucas De Marchi 	struct drm_printer p;
20*00142bceSLucas De Marchi 
21*00142bceSLucas De Marchi 	p = drm_seq_file_printer(m);
22*00142bceSLucas De Marchi 	for_each_engine(engine, gt, id)
23*00142bceSLucas De Marchi 		intel_engine_dump(engine, &p, "%s\n", engine->name);
24*00142bceSLucas De Marchi 
25*00142bceSLucas De Marchi 	return 0;
26*00142bceSLucas De Marchi }
27*00142bceSLucas De Marchi DEFINE_INTEL_GT_DEBUGFS_ATTRIBUTE(engines);
28*00142bceSLucas De Marchi 
intel_gt_engines_debugfs_register(struct intel_gt * gt,struct dentry * root)29*00142bceSLucas De Marchi void intel_gt_engines_debugfs_register(struct intel_gt *gt, struct dentry *root)
30*00142bceSLucas De Marchi {
31*00142bceSLucas De Marchi 	static const struct intel_gt_debugfs_file files[] = {
32*00142bceSLucas De Marchi 		{ "engines", &engines_fops },
33*00142bceSLucas De Marchi 	};
34*00142bceSLucas De Marchi 
35*00142bceSLucas De Marchi 	intel_gt_debugfs_register_files(root, files, ARRAY_SIZE(files), gt);
36*00142bceSLucas De Marchi }
37