be2net: Use MCC_CREATE_EXT_V1 cmd for Skyhawk-R
authorVasundhara Volam <vasundhara.volam@emulex.com>
Wed, 15 Jan 2014 07:53:31 +0000 (13:23 +0530)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Jan 2014 23:52:02 +0000 (15:52 -0800)
Currently this cmd is used only for Lancer.
MCC_CREATE_EXT_V1 supports larger CQ-ids and additional event codes for the
async_event_bitmap field.

Signed-off-by: Vasundhara Volam <vasundhara.volam@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be_cmds.c
drivers/net/ethernet/emulex/benet/be_cmds.h

index 94c35c8d799d9f1e4f4b9fd78121600ad600505e..95eeb2423f391b8a9feb50c1d3d51e0589dc0be6 100644 (file)
@@ -1101,23 +1101,22 @@ static int be_cmd_mccq_ext_create(struct be_adapter *adapter,
                        OPCODE_COMMON_MCC_CREATE_EXT, sizeof(*req), wrb, NULL);
 
        req->num_pages = cpu_to_le16(PAGES_4K_SPANNED(q_mem->va, q_mem->size));
-       if (lancer_chip(adapter)) {
-               req->hdr.version = 1;
-               req->cq_id = cpu_to_le16(cq->id);
-
-               AMAP_SET_BITS(struct amap_mcc_context_lancer, ring_size, ctxt,
-                                               be_encoded_q_len(mccq->len));
-               AMAP_SET_BITS(struct amap_mcc_context_lancer, valid, ctxt, 1);
-               AMAP_SET_BITS(struct amap_mcc_context_lancer, async_cq_id,
-                                                               ctxt, cq->id);
-               AMAP_SET_BITS(struct amap_mcc_context_lancer, async_cq_valid,
-                                                                ctxt, 1);
-
-       } else {
+       if (BEx_chip(adapter)) {
                AMAP_SET_BITS(struct amap_mcc_context_be, valid, ctxt, 1);
                AMAP_SET_BITS(struct amap_mcc_context_be, ring_size, ctxt,
                                                be_encoded_q_len(mccq->len));
                AMAP_SET_BITS(struct amap_mcc_context_be, cq_id, ctxt, cq->id);
+       } else {
+               req->hdr.version = 1;
+               req->cq_id = cpu_to_le16(cq->id);
+
+               AMAP_SET_BITS(struct amap_mcc_context_v1, ring_size, ctxt,
+                             be_encoded_q_len(mccq->len));
+               AMAP_SET_BITS(struct amap_mcc_context_v1, valid, ctxt, 1);
+               AMAP_SET_BITS(struct amap_mcc_context_v1, async_cq_id,
+                             ctxt, cq->id);
+               AMAP_SET_BITS(struct amap_mcc_context_v1, async_cq_valid,
+                             ctxt, 1);
        }
 
        /* Subscribe to Link State and Group 5 Events(bits 1 and 5 set) */
@@ -1187,7 +1186,7 @@ int be_cmd_mccq_create(struct be_adapter *adapter,
        int status;
 
        status = be_cmd_mccq_ext_create(adapter, mccq, cq);
-       if (status && !lancer_chip(adapter)) {
+       if (status && BEx_chip(adapter)) {
                dev_warn(&adapter->pdev->dev, "Upgrade to F/W ver 2.102.235.0 "
                        "or newer to avoid conflicting priorities between NIC "
                        "and FCoE traffic");
index 0075686276aa7f703a6fa63856065a971b5d8388..ed1daedd896d7e53c6caba7c514ba7488b452d6a 100644 (file)
@@ -452,7 +452,7 @@ struct amap_mcc_context_be {
        u8 rsvd2[32];
 } __packed;
 
-struct amap_mcc_context_lancer {
+struct amap_mcc_context_v1 {
        u8 async_cq_id[16];
        u8 ring_size[4];
        u8 rsvd0[12];
@@ -476,7 +476,7 @@ struct be_cmd_req_mcc_ext_create {
        u16 num_pages;
        u16 cq_id;
        u32 async_event_bitmap[1];
-       u8 context[sizeof(struct amap_mcc_context_be) / 8];
+       u8 context[sizeof(struct amap_mcc_context_v1) / 8];
        struct phys_addr pages[8];
 } __packed;