aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/benet/be_cmds.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/benet/be_cmds.h')
-rw-r--r--drivers/net/benet/be_cmds.h40
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 */
276struct 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
291struct 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
299struct 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
347struct be_cmd_req_q_destroy { 381struct 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);
694extern int be_cmd_mccq_create(struct be_ctrl_info *ctrl,
695 struct be_queue_info *mccq,
696 struct be_queue_info *cq);
660extern int be_cmd_txq_create(struct be_ctrl_info *ctrl, 697extern 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,
686extern int be_cmd_get_flow_control(struct be_ctrl_info *ctrl, 723extern 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);
688extern int be_cmd_query_fw_cfg(struct be_ctrl_info *ctrl, u32 *port_num); 725extern int be_cmd_query_fw_cfg(struct be_ctrl_info *ctrl, u32 *port_num);
726extern void be_process_mcc(struct be_ctrl_info *ctrl);