aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netxen/netxen_nic_ctx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/netxen/netxen_nic_ctx.c')
-rw-r--r--drivers/net/netxen/netxen_nic_ctx.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/netxen/netxen_nic_ctx.c b/drivers/net/netxen/netxen_nic_ctx.c
index 9f8ae4719e2f..412d65829d20 100644
--- a/drivers/net/netxen/netxen_nic_ctx.c
+++ b/drivers/net/netxen/netxen_nic_ctx.c
@@ -203,6 +203,8 @@ nx_fw_cmd_create_rx_ctx(struct netxen_adapter *adapter)
203 203
204 cap = (NX_CAP0_LEGACY_CONTEXT | NX_CAP0_LEGACY_MN); 204 cap = (NX_CAP0_LEGACY_CONTEXT | NX_CAP0_LEGACY_MN);
205 cap |= (NX_CAP0_JUMBO_CONTIGUOUS | NX_CAP0_LRO_CONTIGUOUS); 205 cap |= (NX_CAP0_JUMBO_CONTIGUOUS | NX_CAP0_LRO_CONTIGUOUS);
206 if (adapter->capabilities & NX_FW_CAPABILITY_HW_LRO)
207 cap |= NX_CAP0_HW_LRO;
206 208
207 prq->capabilities[0] = cpu_to_le32(cap); 209 prq->capabilities[0] = cpu_to_le32(cap);
208 prq->host_int_crb_mode = 210 prq->host_int_crb_mode =
@@ -647,7 +649,7 @@ int netxen_alloc_hw_resources(struct netxen_adapter *adapter)
647 } 649 }
648 rds_ring->desc_head = (struct rcv_desc *)addr; 650 rds_ring->desc_head = (struct rcv_desc *)addr;
649 651
650 if (adapter->fw_major < 4) 652 if (NX_IS_REVISION_P2(adapter->ahw.revision_id))
651 rds_ring->crb_rcv_producer = 653 rds_ring->crb_rcv_producer =
652 recv_crb_registers[port].crb_rcv_producer[ring]; 654 recv_crb_registers[port].crb_rcv_producer[ring];
653 } 655 }
@@ -675,7 +677,7 @@ int netxen_alloc_hw_resources(struct netxen_adapter *adapter)
675 } 677 }
676 678
677 679
678 if (adapter->fw_major >= 4) { 680 if (!NX_IS_REVISION_P2(adapter->ahw.revision_id)) {
679 err = nx_fw_cmd_create_rx_ctx(adapter); 681 err = nx_fw_cmd_create_rx_ctx(adapter);
680 if (err) 682 if (err)
681 goto err_out_free; 683 goto err_out_free;
@@ -705,7 +707,7 @@ void netxen_free_hw_resources(struct netxen_adapter *adapter)
705 707
706 int port = adapter->portnum; 708 int port = adapter->portnum;
707 709
708 if (adapter->fw_major >= 4) { 710 if (!NX_IS_REVISION_P2(adapter->ahw.revision_id)) {
709 nx_fw_cmd_destroy_rx_ctx(adapter); 711 nx_fw_cmd_destroy_rx_ctx(adapter);
710 nx_fw_cmd_destroy_tx_ctx(adapter); 712 nx_fw_cmd_destroy_tx_ctx(adapter);
711 } else { 713 } else {