.. | .. |
---|
40 | 40 | #ifndef __BNXT_RE_H__ |
---|
41 | 41 | #define __BNXT_RE_H__ |
---|
42 | 42 | #define ROCE_DRV_MODULE_NAME "bnxt_re" |
---|
43 | | -#define ROCE_DRV_MODULE_VERSION "1.0.0" |
---|
44 | 43 | |
---|
45 | 44 | #define BNXT_RE_DESC "Broadcom NetXtreme-C/E RoCE Driver" |
---|
46 | 45 | #define BNXT_RE_PAGE_SHIFT_4K (12) |
---|
.. | .. |
---|
90 | 89 | |
---|
91 | 90 | #define BNXT_RE_DEFAULT_ACK_DELAY 16 |
---|
92 | 91 | |
---|
| 92 | +struct bnxt_re_ring_attr { |
---|
| 93 | + dma_addr_t *dma_arr; |
---|
| 94 | + int pages; |
---|
| 95 | + int type; |
---|
| 96 | + u32 depth; |
---|
| 97 | + u32 lrid; /* Logical ring id */ |
---|
| 98 | + u8 mode; |
---|
| 99 | +}; |
---|
| 100 | + |
---|
93 | 101 | struct bnxt_re_work { |
---|
94 | 102 | struct work_struct work; |
---|
95 | 103 | unsigned long event; |
---|
.. | .. |
---|
105 | 113 | struct bnxt_re_qp *qp1_qp; |
---|
106 | 114 | }; |
---|
107 | 115 | |
---|
| 116 | +#define BNXT_RE_MAX_GSI_SQP_ENTRIES 1024 |
---|
| 117 | +struct bnxt_re_gsi_context { |
---|
| 118 | + struct bnxt_re_qp *gsi_qp; |
---|
| 119 | + struct bnxt_re_qp *gsi_sqp; |
---|
| 120 | + struct bnxt_re_ah *gsi_sah; |
---|
| 121 | + struct bnxt_re_sqp_entries *sqp_tbl; |
---|
| 122 | +}; |
---|
| 123 | + |
---|
108 | 124 | #define BNXT_RE_MIN_MSIX 2 |
---|
109 | 125 | #define BNXT_RE_MAX_MSIX 9 |
---|
110 | 126 | #define BNXT_RE_AEQ_IDX 0 |
---|
111 | 127 | #define BNXT_RE_NQ_IDX 1 |
---|
| 128 | +#define BNXT_RE_GEN_P5_MAX_VF 64 |
---|
112 | 129 | |
---|
113 | 130 | struct bnxt_re_dev { |
---|
114 | 131 | struct ib_device ibdev; |
---|
115 | 132 | struct list_head list; |
---|
116 | 133 | unsigned long flags; |
---|
117 | 134 | #define BNXT_RE_FLAG_NETDEV_REGISTERED 0 |
---|
118 | | -#define BNXT_RE_FLAG_IBDEV_REGISTERED 1 |
---|
119 | 135 | #define BNXT_RE_FLAG_GOT_MSIX 2 |
---|
120 | 136 | #define BNXT_RE_FLAG_HAVE_L2_REF 3 |
---|
121 | 137 | #define BNXT_RE_FLAG_RCFW_CHANNEL_EN 4 |
---|
.. | .. |
---|
125 | 141 | #define BNXT_RE_FLAG_ISSUE_ROCE_STATS 29 |
---|
126 | 142 | struct net_device *netdev; |
---|
127 | 143 | unsigned int version, major, minor; |
---|
| 144 | + struct bnxt_qplib_chip_ctx *chip_ctx; |
---|
128 | 145 | struct bnxt_en_dev *en_dev; |
---|
129 | 146 | struct bnxt_msix_entry msix_entries[BNXT_RE_MAX_MSIX]; |
---|
130 | 147 | int num_msix; |
---|
.. | .. |
---|
133 | 150 | |
---|
134 | 151 | struct delayed_work worker; |
---|
135 | 152 | u8 cur_prio_map; |
---|
136 | | - u8 active_speed; |
---|
| 153 | + u16 active_speed; |
---|
137 | 154 | u8 active_width; |
---|
138 | 155 | |
---|
139 | 156 | /* FP Notification Queue (CQ & SRQ) */ |
---|
.. | .. |
---|
159 | 176 | atomic_t srq_count; |
---|
160 | 177 | atomic_t mr_count; |
---|
161 | 178 | atomic_t mw_count; |
---|
162 | | - atomic_t sched_count; |
---|
163 | 179 | /* Max of 2 lossless traffic class supported per port */ |
---|
164 | 180 | u16 cosq[2]; |
---|
165 | 181 | |
---|
166 | 182 | /* QP for for handling QP1 packets */ |
---|
167 | | - u32 sqp_id; |
---|
168 | | - struct bnxt_re_qp *qp1_sqp; |
---|
169 | | - struct bnxt_re_ah *sqp_ah; |
---|
170 | | - struct bnxt_re_sqp_entries sqp_tbl[1024]; |
---|
| 183 | + struct bnxt_re_gsi_context gsi_ctx; |
---|
171 | 184 | atomic_t nq_alloc_cnt; |
---|
172 | 185 | u32 is_virtfn; |
---|
173 | 186 | u32 num_vfs; |
---|