req->num_pages =  cpu_to_le16(PAGES_4K_SPANNED(q_mem->va, q_mem->size));
        if (lancer_chip(adapter)) {
-               req->hdr.version = 1;
+               req->hdr.version = 2;
                req->page_size = 1; /* 1 for 4K */
                AMAP_SET_BITS(struct amap_cq_context_lancer, coalescwm, ctxt,
                                                                coalesce_wm);
        be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_ETH, OPCODE_ETH_TX_CREATE,
                sizeof(*req));
 
+       if (lancer_chip(adapter)) {
+               req->hdr.version = 1;
+               AMAP_SET_BITS(struct amap_tx_context, if_id, ctxt,
+                                       adapter->if_handle);
+       }
+
        req->num_pages = PAGES_4K_SPANNED(q_mem->va, q_mem->size);
        req->ulp_num = BE_ULP1_NUM;
        req->type = BE_ETH_TX_RING_TYPE_STANDARD;
 
 /* Pseudo amap definition in which each bit of the actual structure is defined
  * as a byte: used to calculate offset/shift/mask of each field */
 struct amap_tx_context {
-       u8 rsvd0[16];           /* dword 0 */
+       u8 if_id[16];           /* dword 0 */
        u8 tx_ring_size[4];     /* dword 0 */
        u8 rsvd1[26];           /* dword 0 */
        u8 pci_func_id[8];      /* dword 1 */