netxen: fix detection of cut-thru firmware mode
authorDhananjay Phadke <dhananjay@netxen.com>
Wed, 17 Jun 2009 17:27:24 +0000 (17:27 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Jun 2009 07:46:14 +0000 (00:46 -0700)
Fix the detection of cut-thru mode of the hardware (direct dma
to host) to mode configured in SRE (ingress block) rather than
onboard memory control.

Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/netxen/netxen_nic_hdr.h
drivers/net/netxen/netxen_nic_hw.c

index 7f0ddbfa7b2839299efce81963180e78b5a825d9..3cc047844af30d42b555efe35e2aca774c14d4eb 100644 (file)
@@ -355,6 +355,7 @@ enum {
 #define NETXEN_HW_CRB_HUB_AGT_ADR_LPC  \
        ((NETXEN_HW_H6_CH_HUB_ADR << 7) | NETXEN_HW_LPC_CRB_AGT_ADR)
 
+#define NETXEN_SRE_MISC                        (NETXEN_CRB_SRE + 0x0002c)
 #define NETXEN_SRE_INT_STATUS          (NETXEN_CRB_SRE + 0x00034)
 #define NETXEN_SRE_PBI_ACTIVE_STATUS   (NETXEN_CRB_SRE + 0x01014)
 #define NETXEN_SRE_L1RE_CTL            (NETXEN_CRB_SRE + 0x03000)
index 42ffb825ebf1aa011aa431cfcf28d94d64e0f936..9702509ce3c5088e52e1456f5820ac32a42f117a 100644 (file)
@@ -2041,8 +2041,8 @@ void netxen_nic_get_firmware_info(struct netxen_adapter *adapter)
                        fw_major, fw_minor, fw_build);
 
        if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) {
-               i = NXRD32(adapter, NETXEN_MIU_MN_CONTROL);
-               adapter->ahw.cut_through = (i & 0x4) ? 1 : 0;
+               i = NXRD32(adapter, NETXEN_SRE_MISC);
+               adapter->ahw.cut_through = (i & 0x8000) ? 1 : 0;
                dev_info(&pdev->dev, "firmware running in %s mode\n",
                adapter->ahw.cut_through ? "cut-through" : "legacy");
        }