aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/netxen
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/netxen')
-rw-r--r--drivers/net/netxen/netxen_nic.h6
-rw-r--r--drivers/net/netxen/netxen_nic_hw.c24
2 files changed, 15 insertions, 15 deletions
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h
index 2544129768f..78e6228937f 100644
--- a/drivers/net/netxen/netxen_nic.h
+++ b/drivers/net/netxen/netxen_nic.h
@@ -693,9 +693,9 @@ typedef enum {
#define NX_BIOS_VERSION_OFFSET (NETXEN_USER_START+0x83c)
#define NX_FW_MAGIC_OFFSET (NETXEN_BRDCFG_START+0x128)
#define NX_FW_MIN_SIZE (0x3fffff)
-#define NX_P2_MN_ROMIMAGE "nxromimg.bin"
-#define NX_P3_CT_ROMIMAGE "nx3fwct.bin"
-#define NX_P3_MN_ROMIMAGE "nx3fwmn.bin"
+#define NX_P2_MN_ROMIMAGE 0
+#define NX_P3_CT_ROMIMAGE 1
+#define NX_P3_MN_ROMIMAGE 2
#define NETXEN_USER_START_OLD NETXEN_PXE_START /* for backward compatibility */
diff --git a/drivers/net/netxen/netxen_nic_hw.c b/drivers/net/netxen/netxen_nic_hw.c
index c89c791e281..b24cfddd619 100644
--- a/drivers/net/netxen/netxen_nic_hw.c
+++ b/drivers/net/netxen/netxen_nic_hw.c
@@ -1130,21 +1130,21 @@ netxen_validate_firmware(struct netxen_adapter *adapter, const char *fwname,
return 0;
}
+static char *fw_name[] = { "nxromimg.bin", "nx3fwct.bin", "nx3fwmn.bin" };
+
int netxen_load_firmware(struct netxen_adapter *adapter)
{
u32 capability, flashed_ver;
const struct firmware *fw;
- char *fw_name = NULL;
+ int fw_type;
struct pci_dev *pdev = adapter->pdev;
int rc = 0;
if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) {
- fw_name = NX_P2_MN_ROMIMAGE;
+ fw_type = NX_P2_MN_ROMIMAGE;
goto request_fw;
- }
-
- if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) {
- fw_name = NX_P3_CT_ROMIMAGE;
+ } else {
+ fw_type = NX_P3_CT_ROMIMAGE;
goto request_fw;
}
@@ -1157,15 +1157,15 @@ request_mn:
adapter->hw_read_wx(adapter,
NX_PEG_TUNE_CAPABILITY, &capability, 4);
if (capability & NX_PEG_TUNE_MN_PRESENT) {
- fw_name = NX_P3_MN_ROMIMAGE;
+ fw_type = NX_P3_MN_ROMIMAGE;
goto request_fw;
}
}
request_fw:
- rc = request_firmware(&fw, fw_name, &pdev->dev);
+ rc = request_firmware(&fw, fw_name[fw_type], &pdev->dev);
if (rc != 0) {
- if (fw_name == NX_P3_CT_ROMIMAGE) {
+ if (fw_type == NX_P3_CT_ROMIMAGE) {
msleep(1);
goto request_mn;
}
@@ -1174,11 +1174,11 @@ request_fw:
goto load_fw;
}
- rc = netxen_validate_firmware(adapter, fw_name, fw);
+ rc = netxen_validate_firmware(adapter, fw_name[fw_type], fw);
if (rc != 0) {
release_firmware(fw);
- if (fw_name == NX_P3_CT_ROMIMAGE) {
+ if (fw_type == NX_P3_CT_ROMIMAGE) {
msleep(1);
goto request_mn;
}
@@ -1187,7 +1187,7 @@ request_fw:
}
load_fw:
- rc = netxen_do_load_firmware(adapter, fw_name, fw);
+ rc = netxen_do_load_firmware(adapter, fw_name[fw_type], fw);
if (fw)
release_firmware(fw);