1/* SPDX-License-Identifier: GPL-2.0-only */
2/* Huawei HiNIC PCI Express Linux driver
3 * Copyright(c) 2017 Huawei Technologies Co., Ltd
4 */
5
6#ifndef HINIC_DEBUGFS_H
7#define HINIC_DEBUGFS_H
8
9#include "hinic_dev.h"
10
11#define TBL_ID_FUNC_CFG_SM_NODE 11
12#define TBL_ID_FUNC_CFG_SM_INST 1
13
14#define HINIC_FUNCTION_CONFIGURE_TABLE_SIZE 64
15
16struct hinic_cmd_lt_rd {
17 u8 status;
18 u8 version;
19 u8 rsvd0[6];
20
21 unsigned char node;
22 unsigned char inst;
23 unsigned char entry_size;
24 unsigned char rsvd;
25 unsigned int lt_index;
26 unsigned int offset;
27 unsigned int len;
28 unsigned char data[100];
29};
30
31struct tag_sml_funcfg_tbl {
32 union {
33 struct {
34 u32 rsvd0 :8;
35 u32 nic_rx_mode :5;
36 u32 rsvd1 :18;
37 u32 valid :1;
38 } bs;
39
40 u32 value;
41 } dw0;
42
43 union {
44 struct {
45 u32 vlan_id :12;
46 u32 vlan_mode :3;
47 u32 fast_recycled_mode :1;
48 u32 mtu :16;
49 } bs;
50
51 u32 value;
52 } dw1;
53
54 u32 dw2;
55 u32 dw3;
56 u32 dw4;
57 u32 dw5;
58 u32 dw6;
59 u32 dw7;
60 u32 dw8;
61 u32 dw9;
62 u32 dw10;
63 u32 dw11;
64 u32 dw12;
65
66 union {
67 struct {
68 u32 rsvd2 :15;
69 u32 cfg_q_num :9;
70 u32 cfg_rq_depth :6;
71 u32 vhd_type :2;
72 } bs;
73
74 u32 value;
75 } dw13;
76
77 u32 dw14;
78 u32 dw15;
79};
80
81int hinic_sq_debug_add(struct hinic_dev *dev, u16 sq_id);
82
83void hinic_sq_debug_rem(struct hinic_sq *sq);
84
85int hinic_rq_debug_add(struct hinic_dev *dev, u16 rq_id);
86
87void hinic_rq_debug_rem(struct hinic_rq *rq);
88
89int hinic_func_table_debug_add(struct hinic_dev *dev);
90
91void hinic_func_table_debug_rem(struct hinic_dev *dev);
92
93void hinic_sq_dbgfs_init(struct hinic_dev *nic_dev);
94
95void hinic_sq_dbgfs_uninit(struct hinic_dev *nic_dev);
96
97void hinic_rq_dbgfs_init(struct hinic_dev *nic_dev);
98
99void hinic_rq_dbgfs_uninit(struct hinic_dev *nic_dev);
100
101void hinic_func_tbl_dbgfs_init(struct hinic_dev *nic_dev);
102
103void hinic_func_tbl_dbgfs_uninit(struct hinic_dev *nic_dev);
104
105void hinic_dbg_init(struct hinic_dev *nic_dev);
106
107void hinic_dbg_uninit(struct hinic_dev *nic_dev);
108
109void hinic_dbg_register_debugfs(const char *debugfs_dir_name);
110
111void hinic_dbg_unregister_debugfs(void);
112
113#endif
114

source code of linux/drivers/net/ethernet/huawei/hinic/hinic_debugfs.h