diff options
Diffstat (limited to 'drivers/misc/cxl/debugfs.c')
-rw-r--r-- | drivers/misc/cxl/debugfs.c | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/drivers/misc/cxl/debugfs.c b/drivers/misc/cxl/debugfs.c index 5751899e0c17..ec7b8a017439 100644 --- a/drivers/misc/cxl/debugfs.c +++ b/drivers/misc/cxl/debugfs.c | |||
@@ -51,6 +51,19 @@ static struct dentry *debugfs_create_io_x64(const char *name, umode_t mode, | |||
51 | return debugfs_create_file(name, mode, parent, (void __force *)value, &fops_io_x64); | 51 | return debugfs_create_file(name, mode, parent, (void __force *)value, &fops_io_x64); |
52 | } | 52 | } |
53 | 53 | ||
54 | void cxl_debugfs_add_adapter_psl_regs(struct cxl *adapter, struct dentry *dir) | ||
55 | { | ||
56 | debugfs_create_io_x64("fir1", S_IRUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_FIR1)); | ||
57 | debugfs_create_io_x64("fir2", S_IRUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_FIR2)); | ||
58 | debugfs_create_io_x64("fir_cntl", S_IRUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_FIR_CNTL)); | ||
59 | debugfs_create_io_x64("trace", S_IRUSR | S_IWUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_TRACE)); | ||
60 | } | ||
61 | |||
62 | void cxl_debugfs_add_adapter_xsl_regs(struct cxl *adapter, struct dentry *dir) | ||
63 | { | ||
64 | debugfs_create_io_x64("fec", S_IRUSR, dir, _cxl_p1_addr(adapter, CXL_XSL_FEC)); | ||
65 | } | ||
66 | |||
54 | int cxl_debugfs_adapter_add(struct cxl *adapter) | 67 | int cxl_debugfs_adapter_add(struct cxl *adapter) |
55 | { | 68 | { |
56 | struct dentry *dir; | 69 | struct dentry *dir; |
@@ -65,13 +78,10 @@ int cxl_debugfs_adapter_add(struct cxl *adapter) | |||
65 | return PTR_ERR(dir); | 78 | return PTR_ERR(dir); |
66 | adapter->debugfs = dir; | 79 | adapter->debugfs = dir; |
67 | 80 | ||
68 | debugfs_create_io_x64("fir1", S_IRUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_FIR1)); | ||
69 | debugfs_create_io_x64("fir2", S_IRUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_FIR2)); | ||
70 | debugfs_create_io_x64("fir_cntl", S_IRUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_FIR_CNTL)); | ||
71 | debugfs_create_io_x64("err_ivte", S_IRUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_ErrIVTE)); | 81 | debugfs_create_io_x64("err_ivte", S_IRUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_ErrIVTE)); |
72 | 82 | ||
73 | debugfs_create_io_x64("trace", S_IRUSR | S_IWUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_TRACE)); | 83 | if (adapter->native->sl_ops->debugfs_add_adapter_sl_regs) |
74 | 84 | adapter->native->sl_ops->debugfs_add_adapter_sl_regs(adapter, dir); | |
75 | return 0; | 85 | return 0; |
76 | } | 86 | } |
77 | 87 | ||
@@ -80,6 +90,14 @@ void cxl_debugfs_adapter_remove(struct cxl *adapter) | |||
80 | debugfs_remove_recursive(adapter->debugfs); | 90 | debugfs_remove_recursive(adapter->debugfs); |
81 | } | 91 | } |
82 | 92 | ||
93 | void cxl_debugfs_add_afu_psl_regs(struct cxl_afu *afu, struct dentry *dir) | ||
94 | { | ||
95 | debugfs_create_io_x64("fir", S_IRUSR, dir, _cxl_p1n_addr(afu, CXL_PSL_FIR_SLICE_An)); | ||
96 | debugfs_create_io_x64("serr", S_IRUSR, dir, _cxl_p1n_addr(afu, CXL_PSL_SERR_An)); | ||
97 | debugfs_create_io_x64("afu_debug", S_IRUSR, dir, _cxl_p1n_addr(afu, CXL_AFU_DEBUG_An)); | ||
98 | debugfs_create_io_x64("trace", S_IRUSR | S_IWUSR, dir, _cxl_p1n_addr(afu, CXL_PSL_SLICE_TRACE)); | ||
99 | } | ||
100 | |||
83 | int cxl_debugfs_afu_add(struct cxl_afu *afu) | 101 | int cxl_debugfs_afu_add(struct cxl_afu *afu) |
84 | { | 102 | { |
85 | struct dentry *dir; | 103 | struct dentry *dir; |
@@ -94,18 +112,15 @@ int cxl_debugfs_afu_add(struct cxl_afu *afu) | |||
94 | return PTR_ERR(dir); | 112 | return PTR_ERR(dir); |
95 | afu->debugfs = dir; | 113 | afu->debugfs = dir; |
96 | 114 | ||
97 | debugfs_create_io_x64("fir", S_IRUSR, dir, _cxl_p1n_addr(afu, CXL_PSL_FIR_SLICE_An)); | ||
98 | debugfs_create_io_x64("serr", S_IRUSR, dir, _cxl_p1n_addr(afu, CXL_PSL_SERR_An)); | ||
99 | debugfs_create_io_x64("afu_debug", S_IRUSR, dir, _cxl_p1n_addr(afu, CXL_AFU_DEBUG_An)); | ||
100 | debugfs_create_io_x64("sr", S_IRUSR, dir, _cxl_p1n_addr(afu, CXL_PSL_SR_An)); | 115 | debugfs_create_io_x64("sr", S_IRUSR, dir, _cxl_p1n_addr(afu, CXL_PSL_SR_An)); |
101 | |||
102 | debugfs_create_io_x64("dsisr", S_IRUSR, dir, _cxl_p2n_addr(afu, CXL_PSL_DSISR_An)); | 116 | debugfs_create_io_x64("dsisr", S_IRUSR, dir, _cxl_p2n_addr(afu, CXL_PSL_DSISR_An)); |
103 | debugfs_create_io_x64("dar", S_IRUSR, dir, _cxl_p2n_addr(afu, CXL_PSL_DAR_An)); | 117 | debugfs_create_io_x64("dar", S_IRUSR, dir, _cxl_p2n_addr(afu, CXL_PSL_DAR_An)); |
104 | debugfs_create_io_x64("sstp0", S_IRUSR, dir, _cxl_p2n_addr(afu, CXL_SSTP0_An)); | 118 | debugfs_create_io_x64("sstp0", S_IRUSR, dir, _cxl_p2n_addr(afu, CXL_SSTP0_An)); |
105 | debugfs_create_io_x64("sstp1", S_IRUSR, dir, _cxl_p2n_addr(afu, CXL_SSTP1_An)); | 119 | debugfs_create_io_x64("sstp1", S_IRUSR, dir, _cxl_p2n_addr(afu, CXL_SSTP1_An)); |
106 | debugfs_create_io_x64("err_status", S_IRUSR, dir, _cxl_p2n_addr(afu, CXL_PSL_ErrStat_An)); | 120 | debugfs_create_io_x64("err_status", S_IRUSR, dir, _cxl_p2n_addr(afu, CXL_PSL_ErrStat_An)); |
107 | 121 | ||
108 | debugfs_create_io_x64("trace", S_IRUSR | S_IWUSR, dir, _cxl_p1n_addr(afu, CXL_PSL_SLICE_TRACE)); | 122 | if (afu->adapter->native->sl_ops->debugfs_add_afu_sl_regs) |
123 | afu->adapter->native->sl_ops->debugfs_add_afu_sl_regs(afu, dir); | ||
109 | 124 | ||
110 | return 0; | 125 | return 0; |
111 | } | 126 | } |