diff options
-rw-r--r-- | drivers/net/cxgb3/cxgb3_ctl_defs.h | 52 | ||||
-rw-r--r-- | drivers/net/cxgb3/cxgb3_offload.c | 7 |
2 files changed, 38 insertions, 21 deletions
diff --git a/drivers/net/cxgb3/cxgb3_ctl_defs.h b/drivers/net/cxgb3/cxgb3_ctl_defs.h index 2095ddacff78..6c4f32066919 100644 --- a/drivers/net/cxgb3/cxgb3_ctl_defs.h +++ b/drivers/net/cxgb3/cxgb3_ctl_defs.h | |||
@@ -33,27 +33,29 @@ | |||
33 | #define _CXGB3_OFFLOAD_CTL_DEFS_H | 33 | #define _CXGB3_OFFLOAD_CTL_DEFS_H |
34 | 34 | ||
35 | enum { | 35 | enum { |
36 | GET_MAX_OUTSTANDING_WR, | 36 | GET_MAX_OUTSTANDING_WR = 0, |
37 | GET_TX_MAX_CHUNK, | 37 | GET_TX_MAX_CHUNK = 1, |
38 | GET_TID_RANGE, | 38 | GET_TID_RANGE = 2, |
39 | GET_STID_RANGE, | 39 | GET_STID_RANGE = 3, |
40 | GET_RTBL_RANGE, | 40 | GET_RTBL_RANGE = 4, |
41 | GET_L2T_CAPACITY, | 41 | GET_L2T_CAPACITY = 5, |
42 | GET_MTUS, | 42 | GET_MTUS = 6, |
43 | GET_WR_LEN, | 43 | GET_WR_LEN = 7, |
44 | GET_IFF_FROM_MAC, | 44 | GET_IFF_FROM_MAC = 8, |
45 | GET_DDP_PARAMS, | 45 | GET_DDP_PARAMS = 9, |
46 | GET_PORTS, | 46 | GET_PORTS = 10, |
47 | 47 | ||
48 | ULP_ISCSI_GET_PARAMS, | 48 | ULP_ISCSI_GET_PARAMS = 11, |
49 | ULP_ISCSI_SET_PARAMS, | 49 | ULP_ISCSI_SET_PARAMS = 12, |
50 | 50 | ||
51 | RDMA_GET_PARAMS, | 51 | RDMA_GET_PARAMS = 13, |
52 | RDMA_CQ_OP, | 52 | RDMA_CQ_OP = 14, |
53 | RDMA_CQ_SETUP, | 53 | RDMA_CQ_SETUP = 15, |
54 | RDMA_CQ_DISABLE, | 54 | RDMA_CQ_DISABLE = 16, |
55 | RDMA_CTRL_QP_SETUP, | 55 | RDMA_CTRL_QP_SETUP = 17, |
56 | RDMA_GET_MEM, | 56 | RDMA_GET_MEM = 18, |
57 | |||
58 | GET_RX_PAGE_INFO = 50, | ||
57 | }; | 59 | }; |
58 | 60 | ||
59 | /* | 61 | /* |
@@ -161,4 +163,12 @@ struct rdma_ctrlqp_setup { | |||
161 | unsigned long long base_addr; | 163 | unsigned long long base_addr; |
162 | unsigned int size; | 164 | unsigned int size; |
163 | }; | 165 | }; |
166 | |||
167 | /* | ||
168 | * Offload TX/RX page information. | ||
169 | */ | ||
170 | struct ofld_page_info { | ||
171 | unsigned int page_size; /* Page size, should be a power of 2 */ | ||
172 | unsigned int num; /* Number of pages */ | ||
173 | }; | ||
164 | #endif /* _CXGB3_OFFLOAD_CTL_DEFS_H */ | 174 | #endif /* _CXGB3_OFFLOAD_CTL_DEFS_H */ |
diff --git a/drivers/net/cxgb3/cxgb3_offload.c b/drivers/net/cxgb3/cxgb3_offload.c index bdff7baeb59d..bac9214170ae 100644 --- a/drivers/net/cxgb3/cxgb3_offload.c +++ b/drivers/net/cxgb3/cxgb3_offload.c | |||
@@ -317,6 +317,8 @@ static int cxgb_offload_ctl(struct t3cdev *tdev, unsigned int req, void *data) | |||
317 | struct iff_mac *iffmacp; | 317 | struct iff_mac *iffmacp; |
318 | struct ddp_params *ddpp; | 318 | struct ddp_params *ddpp; |
319 | struct adap_ports *ports; | 319 | struct adap_ports *ports; |
320 | struct ofld_page_info *rx_page_info; | ||
321 | struct tp_params *tp = &adapter->params.tp; | ||
320 | int i; | 322 | int i; |
321 | 323 | ||
322 | switch (req) { | 324 | switch (req) { |
@@ -382,6 +384,11 @@ static int cxgb_offload_ctl(struct t3cdev *tdev, unsigned int req, void *data) | |||
382 | if (!offload_running(adapter)) | 384 | if (!offload_running(adapter)) |
383 | return -EAGAIN; | 385 | return -EAGAIN; |
384 | return cxgb_rdma_ctl(adapter, req, data); | 386 | return cxgb_rdma_ctl(adapter, req, data); |
387 | case GET_RX_PAGE_INFO: | ||
388 | rx_page_info = data; | ||
389 | rx_page_info->page_size = tp->rx_pg_size; | ||
390 | rx_page_info->num = tp->rx_num_pgs; | ||
391 | break; | ||
385 | default: | 392 | default: |
386 | return -EOPNOTSUPP; | 393 | return -EOPNOTSUPP; |
387 | } | 394 | } |