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 16 struct 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 31 struct 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 81 int hinic_sq_debug_add(struct hinic_dev *dev, u16 sq_id); 82 83 void hinic_sq_debug_rem(struct hinic_sq *sq); 84 85 int hinic_rq_debug_add(struct hinic_dev *dev, u16 rq_id); 86 87 void hinic_rq_debug_rem(struct hinic_rq *rq); 88 89 int hinic_func_table_debug_add(struct hinic_dev *dev); 90 91 void hinic_func_table_debug_rem(struct hinic_dev *dev); 92 93 void hinic_sq_dbgfs_init(struct hinic_dev *nic_dev); 94 95 void hinic_sq_dbgfs_uninit(struct hinic_dev *nic_dev); 96 97 void hinic_rq_dbgfs_init(struct hinic_dev *nic_dev); 98 99 void hinic_rq_dbgfs_uninit(struct hinic_dev *nic_dev); 100 101 void hinic_func_tbl_dbgfs_init(struct hinic_dev *nic_dev); 102 103 void hinic_func_tbl_dbgfs_uninit(struct hinic_dev *nic_dev); 104 105 void hinic_dbg_init(struct hinic_dev *nic_dev); 106 107 void hinic_dbg_uninit(struct hinic_dev *nic_dev); 108 109 void hinic_dbg_register_debugfs(const char *debugfs_dir_name); 110 111 void hinic_dbg_unregister_debugfs(void); 112 113 #endif 114