| .. | .. |
|---|
| 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; |
|---|