xref: /linux/drivers/net/ethernet/intel/ice/ice_debugfs.c (revision ccde82e909467abdf098a8ee6f63e1ecf9a47ce5)
1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright (c) 2022, Intel Corporation. */
3 
4 #include <linux/debugfs.h>
5 #include "ice.h"
6 
7 static struct dentry *ice_debugfs_root;
8 
9 int ice_debugfs_pf_init(struct ice_pf *pf)
10 {
11 	const char *name = pci_name(pf->pdev);
12 
13 	pf->ice_debugfs_pf = debugfs_create_dir(name, ice_debugfs_root);
14 	if (IS_ERR(pf->ice_debugfs_pf))
15 		return PTR_ERR(pf->ice_debugfs_pf);
16 
17 	return 0;
18 }
19 
20 /**
21  * ice_debugfs_pf_deinit - cleanup PF's debugfs
22  * @pf: pointer to the PF struct
23  */
24 void ice_debugfs_pf_deinit(struct ice_pf *pf)
25 {
26 	debugfs_remove_recursive(pf->ice_debugfs_pf);
27 	pf->ice_debugfs_pf = NULL;
28 }
29 
30 /**
31  * ice_debugfs_init - create root directory for debugfs entries
32  */
33 void ice_debugfs_init(void)
34 {
35 	ice_debugfs_root = debugfs_create_dir(KBUILD_MODNAME, NULL);
36 	if (IS_ERR(ice_debugfs_root))
37 		pr_info("init of debugfs failed\n");
38 }
39 
40 /**
41  * ice_debugfs_exit - remove debugfs entries
42  */
43 void ice_debugfs_exit(void)
44 {
45 	debugfs_remove_recursive(ice_debugfs_root);
46 	ice_debugfs_root = NULL;
47 }
48