aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/mic/scif/scif_debugfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/mic/scif/scif_debugfs.c')
-rw-r--r--drivers/misc/mic/scif/scif_debugfs.c85
1 files changed, 85 insertions, 0 deletions
diff --git a/drivers/misc/mic/scif/scif_debugfs.c b/drivers/misc/mic/scif/scif_debugfs.c
new file mode 100644
index 000000000000..51f14e2a1196
--- /dev/null
+++ b/drivers/misc/mic/scif/scif_debugfs.c
@@ -0,0 +1,85 @@
1/*
2 * Intel MIC Platform Software Stack (MPSS)
3 *
4 * Copyright(c) 2014 Intel Corporation.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License, version 2, as
8 * published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * Intel SCIF driver.
16 *
17 */
18#include <linux/debugfs.h>
19#include <linux/seq_file.h>
20
21#include "../common/mic_dev.h"
22#include "scif_main.h"
23
24/* Debugfs parent dir */
25static struct dentry *scif_dbg;
26
27static int scif_dev_test(struct seq_file *s, void *unused)
28{
29 int node;
30
31 seq_printf(s, "Total Nodes %d Self Node Id %d Maxid %d\n",
32 scif_info.total, scif_info.nodeid,
33 scif_info.maxid);
34
35 if (!scif_dev)
36 return 0;
37
38 seq_printf(s, "%-16s\t%-16s\n", "node_id", "state");
39
40 for (node = 0; node <= scif_info.maxid; node++)
41 seq_printf(s, "%-16d\t%-16s\n", scif_dev[node].node,
42 _scifdev_alive(&scif_dev[node]) ?
43 "Running" : "Offline");
44 return 0;
45}
46
47static int scif_dev_test_open(struct inode *inode, struct file *file)
48{
49 return single_open(file, scif_dev_test, inode->i_private);
50}
51
52static int scif_dev_test_release(struct inode *inode, struct file *file)
53{
54 return single_release(inode, file);
55}
56
57static const struct file_operations scif_dev_ops = {
58 .owner = THIS_MODULE,
59 .open = scif_dev_test_open,
60 .read = seq_read,
61 .llseek = seq_lseek,
62 .release = scif_dev_test_release
63};
64
65void __init scif_init_debugfs(void)
66{
67 struct dentry *d;
68
69 scif_dbg = debugfs_create_dir(KBUILD_MODNAME, NULL);
70 if (!scif_dbg) {
71 dev_err(scif_info.mdev.this_device,
72 "can't create debugfs dir scif\n");
73 return;
74 }
75
76 d = debugfs_create_file("scif_dev", 0444, scif_dbg,
77 NULL, &scif_dev_ops);
78 debugfs_create_u8("en_msg_log", 0666, scif_dbg, &scif_info.en_msg_log);
79 debugfs_create_u8("p2p_enable", 0666, scif_dbg, &scif_info.p2p_enable);
80}
81
82void scif_exit_debugfs(void)
83{
84 debugfs_remove_recursive(scif_dbg);
85}