at v5.2-rc1 53 lines 1.4 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2 3#ifndef __842_DEBUGFS_H__ 4#define __842_DEBUGFS_H__ 5 6#include <linux/debugfs.h> 7 8static bool sw842_template_counts; 9module_param_named(template_counts, sw842_template_counts, bool, 0444); 10 11static atomic_t template_count[OPS_MAX], template_repeat_count, 12 template_zeros_count, template_short_data_count, template_end_count; 13 14static struct dentry *sw842_debugfs_root; 15 16static int __init sw842_debugfs_create(void) 17{ 18 umode_t m = S_IRUGO | S_IWUSR; 19 int i; 20 21 if (!debugfs_initialized()) 22 return -ENODEV; 23 24 sw842_debugfs_root = debugfs_create_dir(MODULE_NAME, NULL); 25 if (IS_ERR(sw842_debugfs_root)) 26 return PTR_ERR(sw842_debugfs_root); 27 28 for (i = 0; i < ARRAY_SIZE(template_count); i++) { 29 char name[32]; 30 31 snprintf(name, 32, "template_%02x", i); 32 debugfs_create_atomic_t(name, m, sw842_debugfs_root, 33 &template_count[i]); 34 } 35 debugfs_create_atomic_t("template_repeat", m, sw842_debugfs_root, 36 &template_repeat_count); 37 debugfs_create_atomic_t("template_zeros", m, sw842_debugfs_root, 38 &template_zeros_count); 39 debugfs_create_atomic_t("template_short_data", m, sw842_debugfs_root, 40 &template_short_data_count); 41 debugfs_create_atomic_t("template_end", m, sw842_debugfs_root, 42 &template_end_count); 43 44 return 0; 45} 46 47static void __exit sw842_debugfs_remove(void) 48{ 49 if (sw842_debugfs_root && !IS_ERR(sw842_debugfs_root)) 50 debugfs_remove_recursive(sw842_debugfs_root); 51} 52 53#endif