netxen: refresh firmware info after reset
authorDhananjay Phadke <dhananjay@netxen.com>
Sun, 26 Jul 2009 20:07:36 +0000 (20:07 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Jul 2009 17:54:18 +0000 (10:54 -0700)
o move dma mask update to netxen_start_firmware() so that
  if firmware changes across suspend (e.g. file -> flash)
  it reflects right dma mask.
o re-read firmware capabilities after firmware reset.

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

index b9123d4..3c614c3 100644 (file)
@@ -2047,6 +2047,9 @@ void netxen_nic_get_firmware_info(struct netxen_adapter *adapter)
                dev_info(&pdev->dev, "firmware running in %s mode\n",
                adapter->ahw.cut_through ? "cut-through" : "legacy");
        }
+
+       if (adapter->fw_version >= NETXEN_VERSION_CODE(4, 0, 222))
+               adapter->capabilities = NXRD32(adapter, CRB_FW_CAPABILITIES_1);
 }
 
 int
index 5d3343e..847f78b 100644 (file)
@@ -1083,10 +1083,6 @@ int netxen_init_firmware(struct netxen_adapter *adapter)
        NXWR32(adapter, CRB_MPORT_MODE, MPORT_MULTI_FUNCTION_MODE);
        NXWR32(adapter, CRB_CMDPEG_STATE, PHAN_INITIALIZE_ACK);
 
-       if (adapter->fw_version >= NETXEN_VERSION_CODE(4, 0, 222)) {
-               adapter->capabilities = NXRD32(adapter, CRB_FW_CAPABILITIES_1);
-       }
-
        return err;
 }
 
index 637ac8b..4c7e4c2 100644 (file)
@@ -764,6 +764,10 @@ wait_init:
                return err;
        }
 
+       nx_update_dma_mask(adapter);
+
+       netxen_nic_get_firmware_info(adapter);
+
        return 0;
 }
 
@@ -1071,11 +1075,6 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        err = netxen_start_firmware(adapter, 1);
        if (err)
                goto err_out_iounmap;
-
-       nx_update_dma_mask(adapter);
-
-       netxen_nic_get_firmware_info(adapter);
-
        /*
         * See if the firmware gave us a virtual-physical port mapping.
         */