diff options
Diffstat (limited to 'drivers/net/benet/be_cmds.h')
-rw-r--r-- | drivers/net/benet/be_cmds.h | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/drivers/net/benet/be_cmds.h b/drivers/net/benet/be_cmds.h index e499e2d5b8c3..0a9189defc2a 100644 --- a/drivers/net/benet/be_cmds.h +++ b/drivers/net/benet/be_cmds.h | |||
@@ -101,6 +101,7 @@ struct be_mcc_mailbox { | |||
101 | #define OPCODE_COMMON_FIRMWARE_CONFIG 42 | 101 | #define OPCODE_COMMON_FIRMWARE_CONFIG 42 |
102 | #define OPCODE_COMMON_NTWK_INTERFACE_CREATE 50 | 102 | #define OPCODE_COMMON_NTWK_INTERFACE_CREATE 50 |
103 | #define OPCODE_COMMON_NTWK_INTERFACE_DESTROY 51 | 103 | #define OPCODE_COMMON_NTWK_INTERFACE_DESTROY 51 |
104 | #define OPCODE_COMMON_MCC_DESTROY 53 | ||
104 | #define OPCODE_COMMON_CQ_DESTROY 54 | 105 | #define OPCODE_COMMON_CQ_DESTROY 54 |
105 | #define OPCODE_COMMON_EQ_DESTROY 55 | 106 | #define OPCODE_COMMON_EQ_DESTROY 55 |
106 | #define OPCODE_COMMON_QUERY_FIRMWARE_CONFIG 58 | 107 | #define OPCODE_COMMON_QUERY_FIRMWARE_CONFIG 58 |
@@ -269,6 +270,38 @@ struct be_cmd_resp_cq_create { | |||
269 | u16 rsvd0; | 270 | u16 rsvd0; |
270 | } __packed; | 271 | } __packed; |
271 | 272 | ||
273 | /******************** Create MCCQ ***************************/ | ||
274 | /* Pseudo amap definition in which each bit of the actual structure is defined | ||
275 | * as a byte: used to calculate offset/shift/mask of each field */ | ||
276 | struct amap_mcc_context { | ||
277 | u8 con_index[14]; | ||
278 | u8 rsvd0[2]; | ||
279 | u8 ring_size[4]; | ||
280 | u8 fetch_wrb; | ||
281 | u8 fetch_r2t; | ||
282 | u8 cq_id[10]; | ||
283 | u8 prod_index[14]; | ||
284 | u8 fid[8]; | ||
285 | u8 pdid[9]; | ||
286 | u8 valid; | ||
287 | u8 rsvd1[32]; | ||
288 | u8 rsvd2[32]; | ||
289 | } __packed; | ||
290 | |||
291 | struct be_cmd_req_mcc_create { | ||
292 | struct be_cmd_req_hdr hdr; | ||
293 | u16 num_pages; | ||
294 | u16 rsvd0; | ||
295 | u8 context[sizeof(struct amap_mcc_context) / 8]; | ||
296 | struct phys_addr pages[8]; | ||
297 | } __packed; | ||
298 | |||
299 | struct be_cmd_resp_mcc_create { | ||
300 | struct be_cmd_resp_hdr hdr; | ||
301 | u16 id; | ||
302 | u16 rsvd0; | ||
303 | } __packed; | ||
304 | |||
272 | /******************** Create TxQ ***************************/ | 305 | /******************** Create TxQ ***************************/ |
273 | #define BE_ETH_TX_RING_TYPE_STANDARD 2 | 306 | #define BE_ETH_TX_RING_TYPE_STANDARD 2 |
274 | #define BE_ULP1_NUM 1 | 307 | #define BE_ULP1_NUM 1 |
@@ -341,7 +374,8 @@ enum { | |||
341 | QTYPE_EQ = 1, | 374 | QTYPE_EQ = 1, |
342 | QTYPE_CQ, | 375 | QTYPE_CQ, |
343 | QTYPE_TXQ, | 376 | QTYPE_TXQ, |
344 | QTYPE_RXQ | 377 | QTYPE_RXQ, |
378 | QTYPE_MCCQ | ||
345 | }; | 379 | }; |
346 | 380 | ||
347 | struct be_cmd_req_q_destroy { | 381 | struct be_cmd_req_q_destroy { |
@@ -657,6 +691,9 @@ extern int be_cmd_cq_create(struct be_ctrl_info *ctrl, | |||
657 | struct be_queue_info *cq, struct be_queue_info *eq, | 691 | struct be_queue_info *cq, struct be_queue_info *eq, |
658 | bool sol_evts, bool no_delay, | 692 | bool sol_evts, bool no_delay, |
659 | int num_cqe_dma_coalesce); | 693 | int num_cqe_dma_coalesce); |
694 | extern int be_cmd_mccq_create(struct be_ctrl_info *ctrl, | ||
695 | struct be_queue_info *mccq, | ||
696 | struct be_queue_info *cq); | ||
660 | extern int be_cmd_txq_create(struct be_ctrl_info *ctrl, | 697 | extern int be_cmd_txq_create(struct be_ctrl_info *ctrl, |
661 | struct be_queue_info *txq, | 698 | struct be_queue_info *txq, |
662 | struct be_queue_info *cq); | 699 | struct be_queue_info *cq); |
@@ -686,3 +723,4 @@ extern int be_cmd_set_flow_control(struct be_ctrl_info *ctrl, | |||
686 | extern int be_cmd_get_flow_control(struct be_ctrl_info *ctrl, | 723 | extern int be_cmd_get_flow_control(struct be_ctrl_info *ctrl, |
687 | u32 *tx_fc, u32 *rx_fc); | 724 | u32 *tx_fc, u32 *rx_fc); |
688 | extern int be_cmd_query_fw_cfg(struct be_ctrl_info *ctrl, u32 *port_num); | 725 | extern int be_cmd_query_fw_cfg(struct be_ctrl_info *ctrl, u32 *port_num); |
726 | extern void be_process_mcc(struct be_ctrl_info *ctrl); | ||