diff options
author | Dhananjay Phadke <dhananjay@netxen.com> | 2009-09-05 13:43:11 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-09-07 04:53:18 -0400 |
commit | 2b9e62ee7b2f1971c01fdaa7653c9dae7b571187 (patch) | |
tree | 2985333288b3c984009aca8db6b44a1cf99b4703 /drivers/net/netxen/netxen_nic_hw.c | |
parent | 195c5f9829407857cba86f083caec6302b1fd8e1 (diff) |
netxen: refactor firmware info code
o Combine netxen_get_firmware_info(), netxen_check_options()
so that they are updated every time firmware is reset.
o Set dma mask everytime firmware is reset.
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen/netxen_nic_hw.c')
-rw-r--r-- | drivers/net/netxen/netxen_nic_hw.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/drivers/net/netxen/netxen_nic_hw.c b/drivers/net/netxen/netxen_nic_hw.c index cbfd6102e45..555bc4a7e88 100644 --- a/drivers/net/netxen/netxen_nic_hw.c +++ b/drivers/net/netxen/netxen_nic_hw.c | |||
@@ -2240,65 +2240,6 @@ void netxen_nic_set_link_parameters(struct netxen_adapter *adapter) | |||
2240 | } | 2240 | } |
2241 | } | 2241 | } |
2242 | 2242 | ||
2243 | void netxen_nic_get_firmware_info(struct netxen_adapter *adapter) | ||
2244 | { | ||
2245 | u32 fw_major, fw_minor, fw_build; | ||
2246 | char brd_name[NETXEN_MAX_SHORT_NAME]; | ||
2247 | char serial_num[32]; | ||
2248 | int i, offset, val; | ||
2249 | int *ptr32; | ||
2250 | struct pci_dev *pdev = adapter->pdev; | ||
2251 | |||
2252 | adapter->driver_mismatch = 0; | ||
2253 | |||
2254 | ptr32 = (int *)&serial_num; | ||
2255 | offset = NX_FW_SERIAL_NUM_OFFSET; | ||
2256 | for (i = 0; i < 8; i++) { | ||
2257 | if (netxen_rom_fast_read(adapter, offset, &val) == -1) { | ||
2258 | dev_err(&pdev->dev, "error reading board info\n"); | ||
2259 | adapter->driver_mismatch = 1; | ||
2260 | return; | ||
2261 | } | ||
2262 | ptr32[i] = cpu_to_le32(val); | ||
2263 | offset += sizeof(u32); | ||
2264 | } | ||
2265 | |||
2266 | fw_major = NXRD32(adapter, NETXEN_FW_VERSION_MAJOR); | ||
2267 | fw_minor = NXRD32(adapter, NETXEN_FW_VERSION_MINOR); | ||
2268 | fw_build = NXRD32(adapter, NETXEN_FW_VERSION_SUB); | ||
2269 | |||
2270 | adapter->fw_version = NETXEN_VERSION_CODE(fw_major, fw_minor, fw_build); | ||
2271 | |||
2272 | if (adapter->portnum == 0) { | ||
2273 | get_brd_name_by_type(adapter->ahw.board_type, brd_name); | ||
2274 | |||
2275 | printk(KERN_INFO "NetXen %s Board S/N %s Chip rev 0x%x\n", | ||
2276 | brd_name, serial_num, adapter->ahw.revision_id); | ||
2277 | } | ||
2278 | |||
2279 | if (adapter->fw_version < NETXEN_VERSION_CODE(3, 4, 216)) { | ||
2280 | adapter->driver_mismatch = 1; | ||
2281 | dev_warn(&pdev->dev, "firmware version %d.%d.%d unsupported\n", | ||
2282 | fw_major, fw_minor, fw_build); | ||
2283 | return; | ||
2284 | } | ||
2285 | |||
2286 | dev_info(&pdev->dev, "firmware version %d.%d.%d\n", | ||
2287 | fw_major, fw_minor, fw_build); | ||
2288 | |||
2289 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { | ||
2290 | i = NXRD32(adapter, NETXEN_SRE_MISC); | ||
2291 | adapter->ahw.cut_through = (i & 0x8000) ? 1 : 0; | ||
2292 | dev_info(&pdev->dev, "firmware running in %s mode\n", | ||
2293 | adapter->ahw.cut_through ? "cut-through" : "legacy"); | ||
2294 | } | ||
2295 | |||
2296 | if (adapter->fw_version >= NETXEN_VERSION_CODE(4, 0, 222)) | ||
2297 | adapter->capabilities = NXRD32(adapter, CRB_FW_CAPABILITIES_1); | ||
2298 | |||
2299 | adapter->flags &= ~NETXEN_NIC_LRO_ENABLED; | ||
2300 | } | ||
2301 | |||
2302 | int | 2243 | int |
2303 | netxen_nic_wol_supported(struct netxen_adapter *adapter) | 2244 | netxen_nic_wol_supported(struct netxen_adapter *adapter) |
2304 | { | 2245 | { |