mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
netxen: fix firmware type check
Unified firmware image may not contain MN type of firmware. Driver should fall back to NOMN firmware type instead of going to flash. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f2251f668e
commit
634d7df89a
1 changed files with 13 additions and 1 deletions
|
@ -619,17 +619,20 @@ nx_set_product_offs(struct netxen_adapter *adapter)
|
|||
uint32_t i;
|
||||
__le32 entries;
|
||||
|
||||
int mn_present = (NX_IS_REVISION_P2(adapter->ahw.revision_id)) ?
|
||||
1 : netxen_p3_has_mn(adapter);
|
||||
|
||||
ptab_descr = nx_get_table_desc(unirom, NX_UNI_DIR_SECT_PRODUCT_TBL);
|
||||
if (ptab_descr == NULL)
|
||||
return -1;
|
||||
|
||||
entries = cpu_to_le32(ptab_descr->num_entries);
|
||||
|
||||
nomn:
|
||||
for (i = 0; i < entries; i++) {
|
||||
|
||||
__le32 flags, file_chiprev, offs;
|
||||
u8 chiprev = adapter->ahw.revision_id;
|
||||
int mn_present = netxen_p3_has_mn(adapter);
|
||||
uint32_t flagbit;
|
||||
|
||||
offs = cpu_to_le32(ptab_descr->findex) +
|
||||
|
@ -647,6 +650,11 @@ nx_set_product_offs(struct netxen_adapter *adapter)
|
|||
}
|
||||
}
|
||||
|
||||
if (mn_present && NX_IS_REVISION_P3(adapter->ahw.revision_id)) {
|
||||
mn_present = 0;
|
||||
goto nomn;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -1021,6 +1029,10 @@ netxen_p3_has_mn(struct netxen_adapter *adapter)
|
|||
u32 capability, flashed_ver;
|
||||
capability = 0;
|
||||
|
||||
/* NX2031 always had MN */
|
||||
if (NX_IS_REVISION_P2(adapter->ahw.revision_id))
|
||||
return 1;
|
||||
|
||||
netxen_rom_fast_read(adapter,
|
||||
NX_FW_VERSION_OFFSET, (int *)&flashed_ver);
|
||||
flashed_ver = NETXEN_DECODE_VERSION(flashed_ver);
|
||||
|
|
Loading…
Reference in a new issue