1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
22da572c9SDan Streetman
32da572c9SDan Streetman #ifndef __842_DEBUGFS_H__
42da572c9SDan Streetman #define __842_DEBUGFS_H__
52da572c9SDan Streetman
62da572c9SDan Streetman #include <linux/debugfs.h>
72da572c9SDan Streetman
82da572c9SDan Streetman static bool sw842_template_counts;
92da572c9SDan Streetman module_param_named(template_counts, sw842_template_counts, bool, 0444);
102da572c9SDan Streetman
112da572c9SDan Streetman static atomic_t template_count[OPS_MAX], template_repeat_count,
122da572c9SDan Streetman template_zeros_count, template_short_data_count, template_end_count;
132da572c9SDan Streetman
142da572c9SDan Streetman static struct dentry *sw842_debugfs_root;
152da572c9SDan Streetman
sw842_debugfs_create(void)162da572c9SDan Streetman static int __init sw842_debugfs_create(void)
172da572c9SDan Streetman {
182da572c9SDan Streetman umode_t m = S_IRUGO | S_IWUSR;
192da572c9SDan Streetman int i;
202da572c9SDan Streetman
212da572c9SDan Streetman if (!debugfs_initialized())
222da572c9SDan Streetman return -ENODEV;
232da572c9SDan Streetman
242da572c9SDan Streetman sw842_debugfs_root = debugfs_create_dir(MODULE_NAME, NULL);
252da572c9SDan Streetman
262da572c9SDan Streetman for (i = 0; i < ARRAY_SIZE(template_count); i++) {
272da572c9SDan Streetman char name[32];
282da572c9SDan Streetman
292da572c9SDan Streetman snprintf(name, 32, "template_%02x", i);
302da572c9SDan Streetman debugfs_create_atomic_t(name, m, sw842_debugfs_root,
312da572c9SDan Streetman &template_count[i]);
322da572c9SDan Streetman }
332da572c9SDan Streetman debugfs_create_atomic_t("template_repeat", m, sw842_debugfs_root,
342da572c9SDan Streetman &template_repeat_count);
352da572c9SDan Streetman debugfs_create_atomic_t("template_zeros", m, sw842_debugfs_root,
362da572c9SDan Streetman &template_zeros_count);
372da572c9SDan Streetman debugfs_create_atomic_t("template_short_data", m, sw842_debugfs_root,
382da572c9SDan Streetman &template_short_data_count);
392da572c9SDan Streetman debugfs_create_atomic_t("template_end", m, sw842_debugfs_root,
402da572c9SDan Streetman &template_end_count);
412da572c9SDan Streetman
422da572c9SDan Streetman return 0;
432da572c9SDan Streetman }
442da572c9SDan Streetman
sw842_debugfs_remove(void)452da572c9SDan Streetman static void __exit sw842_debugfs_remove(void)
462da572c9SDan Streetman {
472da572c9SDan Streetman debugfs_remove_recursive(sw842_debugfs_root);
482da572c9SDan Streetman }
492da572c9SDan Streetman
502da572c9SDan Streetman #endif
51