diff options
author | Dhananjay Phadke <dhananjay@netxen.com> | 2009-04-07 18:50:44 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-08 18:58:28 -0400 |
commit | 1fbe63235893e5dce28fe91d8465dd231b0cb3d9 (patch) | |
tree | 52d88817b8e23c2784c0e2a33a538f4eab2fcb8f | |
parent | 71dcddbdd35487eb931aa8aab28a2df474008754 (diff) |
netxen: annotate register access functions
o remove unnecessary length parameter since register access
width is fixed 4 byte.
o remove superfluous pci_read_normalize and pci_write_normalize
functions.
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/netxen/netxen_nic.h | 75 | ||||
-rw-r--r-- | drivers/net/netxen/netxen_nic_ctx.c | 18 | ||||
-rw-r--r-- | drivers/net/netxen/netxen_nic_ethtool.c | 45 | ||||
-rw-r--r-- | drivers/net/netxen/netxen_nic_hw.c | 229 | ||||
-rw-r--r-- | drivers/net/netxen/netxen_nic_init.c | 40 | ||||
-rw-r--r-- | drivers/net/netxen/netxen_nic_main.c | 66 | ||||
-rw-r--r-- | drivers/net/netxen/netxen_nic_niu.c | 110 |
7 files changed, 239 insertions, 344 deletions
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h index e0f329ff3691..1e4190dd0c16 100644 --- a/drivers/net/netxen/netxen_nic.h +++ b/drivers/net/netxen/netxen_nic.h | |||
@@ -1258,14 +1258,12 @@ struct netxen_adapter { | |||
1258 | int (*init_port) (struct netxen_adapter *, int); | 1258 | int (*init_port) (struct netxen_adapter *, int); |
1259 | int (*stop_port) (struct netxen_adapter *); | 1259 | int (*stop_port) (struct netxen_adapter *); |
1260 | 1260 | ||
1261 | int (*hw_read_wx)(struct netxen_adapter *, ulong, void *, int); | 1261 | u32 (*hw_read_wx)(struct netxen_adapter *, ulong); |
1262 | int (*hw_write_wx)(struct netxen_adapter *, ulong, void *, int); | 1262 | int (*hw_write_wx)(struct netxen_adapter *, ulong, u32); |
1263 | int (*pci_mem_read)(struct netxen_adapter *, u64, void *, int); | 1263 | int (*pci_mem_read)(struct netxen_adapter *, u64, void *, int); |
1264 | int (*pci_mem_write)(struct netxen_adapter *, u64, void *, int); | 1264 | int (*pci_mem_write)(struct netxen_adapter *, u64, void *, int); |
1265 | int (*pci_write_immediate)(struct netxen_adapter *, u64, u32); | 1265 | int (*pci_write_immediate)(struct netxen_adapter *, u64, u32); |
1266 | u32 (*pci_read_immediate)(struct netxen_adapter *, u64); | 1266 | u32 (*pci_read_immediate)(struct netxen_adapter *, u64); |
1267 | void (*pci_write_normalize)(struct netxen_adapter *, u64, u32); | ||
1268 | u32 (*pci_read_normalize)(struct netxen_adapter *, u64); | ||
1269 | unsigned long (*pci_set_window)(struct netxen_adapter *, | 1267 | unsigned long (*pci_set_window)(struct netxen_adapter *, |
1270 | unsigned long long); | 1268 | unsigned long long); |
1271 | 1269 | ||
@@ -1302,46 +1300,6 @@ struct netxen_adapter { | |||
1302 | #define netxen_get_dma_watchdog_disabled(config_word) \ | 1300 | #define netxen_get_dma_watchdog_disabled(config_word) \ |
1303 | (((config_word) >> 1) & 0x1) | 1301 | (((config_word) >> 1) & 0x1) |
1304 | 1302 | ||
1305 | /* Max number of xmit producer threads that can run simultaneously */ | ||
1306 | #define MAX_XMIT_PRODUCERS 16 | ||
1307 | |||
1308 | #define PCI_OFFSET_FIRST_RANGE(adapter, off) \ | ||
1309 | ((adapter)->ahw.pci_base0 + (off)) | ||
1310 | #define PCI_OFFSET_SECOND_RANGE(adapter, off) \ | ||
1311 | ((adapter)->ahw.pci_base1 + (off) - SECOND_PAGE_GROUP_START) | ||
1312 | #define PCI_OFFSET_THIRD_RANGE(adapter, off) \ | ||
1313 | ((adapter)->ahw.pci_base2 + (off) - THIRD_PAGE_GROUP_START) | ||
1314 | |||
1315 | static inline void __iomem *pci_base_offset(struct netxen_adapter *adapter, | ||
1316 | unsigned long off) | ||
1317 | { | ||
1318 | if ((off < FIRST_PAGE_GROUP_END) && (off >= FIRST_PAGE_GROUP_START)) { | ||
1319 | return (adapter->ahw.pci_base0 + off); | ||
1320 | } else if ((off < SECOND_PAGE_GROUP_END) && | ||
1321 | (off >= SECOND_PAGE_GROUP_START)) { | ||
1322 | return (adapter->ahw.pci_base1 + off - SECOND_PAGE_GROUP_START); | ||
1323 | } else if ((off < THIRD_PAGE_GROUP_END) && | ||
1324 | (off >= THIRD_PAGE_GROUP_START)) { | ||
1325 | return (adapter->ahw.pci_base2 + off - THIRD_PAGE_GROUP_START); | ||
1326 | } | ||
1327 | return NULL; | ||
1328 | } | ||
1329 | |||
1330 | static inline void __iomem *pci_base(struct netxen_adapter *adapter, | ||
1331 | unsigned long off) | ||
1332 | { | ||
1333 | if ((off < FIRST_PAGE_GROUP_END) && (off >= FIRST_PAGE_GROUP_START)) { | ||
1334 | return adapter->ahw.pci_base0; | ||
1335 | } else if ((off < SECOND_PAGE_GROUP_END) && | ||
1336 | (off >= SECOND_PAGE_GROUP_START)) { | ||
1337 | return adapter->ahw.pci_base1; | ||
1338 | } else if ((off < THIRD_PAGE_GROUP_END) && | ||
1339 | (off >= THIRD_PAGE_GROUP_START)) { | ||
1340 | return adapter->ahw.pci_base2; | ||
1341 | } | ||
1342 | return NULL; | ||
1343 | } | ||
1344 | |||
1345 | int netxen_niu_xgbe_enable_phy_interrupts(struct netxen_adapter *adapter); | 1303 | int netxen_niu_xgbe_enable_phy_interrupts(struct netxen_adapter *adapter); |
1346 | int netxen_niu_gbe_enable_phy_interrupts(struct netxen_adapter *adapter); | 1304 | int netxen_niu_gbe_enable_phy_interrupts(struct netxen_adapter *adapter); |
1347 | int netxen_niu_xgbe_disable_phy_interrupts(struct netxen_adapter *adapter); | 1305 | int netxen_niu_xgbe_disable_phy_interrupts(struct netxen_adapter *adapter); |
@@ -1357,18 +1315,17 @@ int netxen_nic_set_mtu_gb(struct netxen_adapter *adapter, int new_mtu); | |||
1357 | void netxen_nic_reg_write(struct netxen_adapter *adapter, u64 off, u32 val); | 1315 | void netxen_nic_reg_write(struct netxen_adapter *adapter, u64 off, u32 val); |
1358 | int netxen_nic_reg_read(struct netxen_adapter *adapter, u64 off); | 1316 | int netxen_nic_reg_read(struct netxen_adapter *adapter, u64 off); |
1359 | void netxen_nic_write_w0(struct netxen_adapter *adapter, u32 index, u32 value); | 1317 | void netxen_nic_write_w0(struct netxen_adapter *adapter, u32 index, u32 value); |
1360 | void netxen_nic_read_w0(struct netxen_adapter *adapter, u32 index, u32 *value); | 1318 | u32 netxen_nic_read_w0(struct netxen_adapter *adapter, u32 index); |
1361 | void netxen_nic_write_w1(struct netxen_adapter *adapter, u32 index, u32 value); | 1319 | void netxen_nic_write_w1(struct netxen_adapter *adapter, u32 index, u32 value); |
1362 | void netxen_nic_read_w1(struct netxen_adapter *adapter, u32 index, u32 *value); | 1320 | u32 netxen_nic_read_w1(struct netxen_adapter *adapter, u32 index); |
1363 | 1321 | ||
1364 | int netxen_nic_get_board_info(struct netxen_adapter *adapter); | 1322 | int netxen_nic_get_board_info(struct netxen_adapter *adapter); |
1365 | void netxen_nic_get_firmware_info(struct netxen_adapter *adapter); | 1323 | void netxen_nic_get_firmware_info(struct netxen_adapter *adapter); |
1366 | int netxen_nic_wol_supported(struct netxen_adapter *adapter); | 1324 | int netxen_nic_wol_supported(struct netxen_adapter *adapter); |
1367 | 1325 | ||
1368 | int netxen_nic_hw_read_wx_128M(struct netxen_adapter *adapter, | 1326 | u32 netxen_nic_hw_read_wx_128M(struct netxen_adapter *adapter, ulong off); |
1369 | ulong off, void *data, int len); | ||
1370 | int netxen_nic_hw_write_wx_128M(struct netxen_adapter *adapter, | 1327 | int netxen_nic_hw_write_wx_128M(struct netxen_adapter *adapter, |
1371 | ulong off, void *data, int len); | 1328 | ulong off, u32 data); |
1372 | int netxen_nic_pci_mem_read_128M(struct netxen_adapter *adapter, | 1329 | int netxen_nic_pci_mem_read_128M(struct netxen_adapter *adapter, |
1373 | u64 off, void *data, int size); | 1330 | u64 off, void *data, int size); |
1374 | int netxen_nic_pci_mem_write_128M(struct netxen_adapter *adapter, | 1331 | int netxen_nic_pci_mem_write_128M(struct netxen_adapter *adapter, |
@@ -1384,10 +1341,9 @@ unsigned long netxen_nic_pci_set_window_128M(struct netxen_adapter *adapter, | |||
1384 | void netxen_nic_pci_change_crbwindow_128M(struct netxen_adapter *adapter, | 1341 | void netxen_nic_pci_change_crbwindow_128M(struct netxen_adapter *adapter, |
1385 | u32 wndw); | 1342 | u32 wndw); |
1386 | 1343 | ||
1387 | int netxen_nic_hw_read_wx_2M(struct netxen_adapter *adapter, | 1344 | u32 netxen_nic_hw_read_wx_2M(struct netxen_adapter *adapter, ulong off); |
1388 | ulong off, void *data, int len); | ||
1389 | int netxen_nic_hw_write_wx_2M(struct netxen_adapter *adapter, | 1345 | int netxen_nic_hw_write_wx_2M(struct netxen_adapter *adapter, |
1390 | ulong off, void *data, int len); | 1346 | ulong off, u32 data); |
1391 | int netxen_nic_pci_mem_read_2M(struct netxen_adapter *adapter, | 1347 | int netxen_nic_pci_mem_read_2M(struct netxen_adapter *adapter, |
1392 | u64 off, void *data, int size); | 1348 | u64 off, void *data, int size); |
1393 | int netxen_nic_pci_mem_write_2M(struct netxen_adapter *adapter, | 1349 | int netxen_nic_pci_mem_write_2M(struct netxen_adapter *adapter, |
@@ -1514,9 +1470,8 @@ dma_watchdog_shutdown_request(struct netxen_adapter *adapter) | |||
1514 | u32 ctrl; | 1470 | u32 ctrl; |
1515 | 1471 | ||
1516 | /* check if already inactive */ | 1472 | /* check if already inactive */ |
1517 | if (adapter->hw_read_wx(adapter, | 1473 | ctrl = adapter->hw_read_wx(adapter, |
1518 | NETXEN_CAM_RAM(NETXEN_CAM_RAM_DMA_WATCHDOG_CTRL), &ctrl, 4)) | 1474 | NETXEN_CAM_RAM(NETXEN_CAM_RAM_DMA_WATCHDOG_CTRL)); |
1519 | printk(KERN_ERR "failed to read dma watchdog status\n"); | ||
1520 | 1475 | ||
1521 | if (netxen_get_dma_watchdog_enabled(ctrl) == 0) | 1476 | if (netxen_get_dma_watchdog_enabled(ctrl) == 0) |
1522 | return 1; | 1477 | return 1; |
@@ -1534,9 +1489,8 @@ dma_watchdog_shutdown_poll_result(struct netxen_adapter *adapter) | |||
1534 | { | 1489 | { |
1535 | u32 ctrl; | 1490 | u32 ctrl; |
1536 | 1491 | ||
1537 | if (adapter->hw_read_wx(adapter, | 1492 | ctrl = adapter->hw_read_wx(adapter, |
1538 | NETXEN_CAM_RAM(NETXEN_CAM_RAM_DMA_WATCHDOG_CTRL), &ctrl, 4)) | 1493 | NETXEN_CAM_RAM(NETXEN_CAM_RAM_DMA_WATCHDOG_CTRL)); |
1539 | printk(KERN_ERR "failed to read dma watchdog status\n"); | ||
1540 | 1494 | ||
1541 | return (netxen_get_dma_watchdog_enabled(ctrl) == 0); | 1495 | return (netxen_get_dma_watchdog_enabled(ctrl) == 0); |
1542 | } | 1496 | } |
@@ -1546,9 +1500,8 @@ dma_watchdog_wakeup(struct netxen_adapter *adapter) | |||
1546 | { | 1500 | { |
1547 | u32 ctrl; | 1501 | u32 ctrl; |
1548 | 1502 | ||
1549 | if (adapter->hw_read_wx(adapter, | 1503 | ctrl = adapter->hw_read_wx(adapter, |
1550 | NETXEN_CAM_RAM(NETXEN_CAM_RAM_DMA_WATCHDOG_CTRL), &ctrl, 4)) | 1504 | NETXEN_CAM_RAM(NETXEN_CAM_RAM_DMA_WATCHDOG_CTRL)); |
1551 | printk(KERN_ERR "failed to read dma watchdog status\n"); | ||
1552 | 1505 | ||
1553 | if (netxen_get_dma_watchdog_enabled(ctrl)) | 1506 | if (netxen_get_dma_watchdog_enabled(ctrl)) |
1554 | return 1; | 1507 | return 1; |
diff --git a/drivers/net/netxen/netxen_nic_ctx.c b/drivers/net/netxen/netxen_nic_ctx.c index 794335188a26..7a13ee8144ee 100644 --- a/drivers/net/netxen/netxen_nic_ctx.c +++ b/drivers/net/netxen/netxen_nic_ctx.c | |||
@@ -41,8 +41,8 @@ netxen_api_lock(struct netxen_adapter *adapter) | |||
41 | 41 | ||
42 | for (;;) { | 42 | for (;;) { |
43 | /* Acquire PCIE HW semaphore5 */ | 43 | /* Acquire PCIE HW semaphore5 */ |
44 | netxen_nic_read_w0(adapter, | 44 | done = netxen_nic_read_w0(adapter, |
45 | NETXEN_PCIE_REG(PCIE_SEM5_LOCK), &done); | 45 | NETXEN_PCIE_REG(PCIE_SEM5_LOCK)); |
46 | 46 | ||
47 | if (done == 1) | 47 | if (done == 1) |
48 | break; | 48 | break; |
@@ -65,11 +65,9 @@ netxen_api_lock(struct netxen_adapter *adapter) | |||
65 | static int | 65 | static int |
66 | netxen_api_unlock(struct netxen_adapter *adapter) | 66 | netxen_api_unlock(struct netxen_adapter *adapter) |
67 | { | 67 | { |
68 | u32 val; | ||
69 | |||
70 | /* Release PCIE HW semaphore5 */ | 68 | /* Release PCIE HW semaphore5 */ |
71 | netxen_nic_read_w0(adapter, | 69 | netxen_nic_read_w0(adapter, |
72 | NETXEN_PCIE_REG(PCIE_SEM5_UNLOCK), &val); | 70 | NETXEN_PCIE_REG(PCIE_SEM5_UNLOCK)); |
73 | return 0; | 71 | return 0; |
74 | } | 72 | } |
75 | 73 | ||
@@ -86,7 +84,7 @@ netxen_poll_rsp(struct netxen_adapter *adapter) | |||
86 | if (++timeout > NX_OS_CRB_RETRY_COUNT) | 84 | if (++timeout > NX_OS_CRB_RETRY_COUNT) |
87 | return NX_CDRP_RSP_TIMEOUT; | 85 | return NX_CDRP_RSP_TIMEOUT; |
88 | 86 | ||
89 | netxen_nic_read_w1(adapter, NX_CDRP_CRB_OFFSET, &rsp); | 87 | rsp = netxen_nic_read_w1(adapter, NX_CDRP_CRB_OFFSET); |
90 | } while (!NX_CDRP_IS_RSP(rsp)); | 88 | } while (!NX_CDRP_IS_RSP(rsp)); |
91 | 89 | ||
92 | return rsp; | 90 | return rsp; |
@@ -125,7 +123,7 @@ netxen_issue_cmd(struct netxen_adapter *adapter, | |||
125 | 123 | ||
126 | rcode = NX_RCODE_TIMEOUT; | 124 | rcode = NX_RCODE_TIMEOUT; |
127 | } else if (rsp == NX_CDRP_RSP_FAIL) { | 125 | } else if (rsp == NX_CDRP_RSP_FAIL) { |
128 | netxen_nic_read_w1(adapter, NX_ARG1_CRB_OFFSET, &rcode); | 126 | rcode = netxen_nic_read_w1(adapter, NX_ARG1_CRB_OFFSET); |
129 | 127 | ||
130 | printk(KERN_ERR "%s: failed card response code:0x%x\n", | 128 | printk(KERN_ERR "%s: failed card response code:0x%x\n", |
131 | netxen_nic_driver_name, rcode); | 129 | netxen_nic_driver_name, rcode); |
@@ -517,11 +515,11 @@ netxen_init_old_ctx(struct netxen_adapter *adapter) | |||
517 | adapter->ctx_desc->sts_ring_addr = cpu_to_le64(sds_ring->phys_addr); | 515 | adapter->ctx_desc->sts_ring_addr = cpu_to_le64(sds_ring->phys_addr); |
518 | adapter->ctx_desc->sts_ring_size = cpu_to_le32(sds_ring->num_desc); | 516 | adapter->ctx_desc->sts_ring_size = cpu_to_le32(sds_ring->num_desc); |
519 | 517 | ||
520 | adapter->pci_write_normalize(adapter, CRB_CTX_ADDR_REG_LO(func_id), | 518 | adapter->hw_write_wx(adapter, CRB_CTX_ADDR_REG_LO(func_id), |
521 | lower32(adapter->ctx_desc_phys_addr)); | 519 | lower32(adapter->ctx_desc_phys_addr)); |
522 | adapter->pci_write_normalize(adapter, CRB_CTX_ADDR_REG_HI(func_id), | 520 | adapter->hw_write_wx(adapter, CRB_CTX_ADDR_REG_HI(func_id), |
523 | upper32(adapter->ctx_desc_phys_addr)); | 521 | upper32(adapter->ctx_desc_phys_addr)); |
524 | adapter->pci_write_normalize(adapter, CRB_CTX_SIGNATURE_REG(func_id), | 522 | adapter->hw_write_wx(adapter, CRB_CTX_SIGNATURE_REG(func_id), |
525 | NETXEN_CTX_SIGNATURE | func_id); | 523 | NETXEN_CTX_SIGNATURE | func_id); |
526 | return 0; | 524 | return 0; |
527 | } | 525 | } |
diff --git a/drivers/net/netxen/netxen_nic_ethtool.c b/drivers/net/netxen/netxen_nic_ethtool.c index 5fde9e088a94..6c5a111e80bf 100644 --- a/drivers/net/netxen/netxen_nic_ethtool.c +++ b/drivers/net/netxen/netxen_nic_ethtool.c | |||
@@ -92,11 +92,11 @@ netxen_nic_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo) | |||
92 | strncpy(drvinfo->driver, netxen_nic_driver_name, 32); | 92 | strncpy(drvinfo->driver, netxen_nic_driver_name, 32); |
93 | strncpy(drvinfo->version, NETXEN_NIC_LINUX_VERSIONID, 32); | 93 | strncpy(drvinfo->version, NETXEN_NIC_LINUX_VERSIONID, 32); |
94 | write_lock_irqsave(&adapter->adapter_lock, flags); | 94 | write_lock_irqsave(&adapter->adapter_lock, flags); |
95 | fw_major = adapter->pci_read_normalize(adapter, | 95 | fw_major = adapter->hw_read_wx(adapter, |
96 | NETXEN_FW_VERSION_MAJOR); | 96 | NETXEN_FW_VERSION_MAJOR); |
97 | fw_minor = adapter->pci_read_normalize(adapter, | 97 | fw_minor = adapter->hw_read_wx(adapter, |
98 | NETXEN_FW_VERSION_MINOR); | 98 | NETXEN_FW_VERSION_MINOR); |
99 | fw_build = adapter->pci_read_normalize(adapter, | 99 | fw_build = adapter->hw_read_wx(adapter, |
100 | NETXEN_FW_VERSION_SUB); | 100 | NETXEN_FW_VERSION_SUB); |
101 | write_unlock_irqrestore(&adapter->adapter_lock, flags); | 101 | write_unlock_irqrestore(&adapter->adapter_lock, flags); |
102 | sprintf(drvinfo->fw_version, "%d.%d.%d", fw_major, fw_minor, fw_build); | 102 | sprintf(drvinfo->fw_version, "%d.%d.%d", fw_major, fw_minor, fw_build); |
@@ -135,7 +135,7 @@ netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) | |||
135 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { | 135 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { |
136 | u32 val; | 136 | u32 val; |
137 | 137 | ||
138 | adapter->hw_read_wx(adapter, NETXEN_PORT_MODE_ADDR, &val, 4); | 138 | val = adapter->hw_read_wx(adapter, NETXEN_PORT_MODE_ADDR); |
139 | if (val == NETXEN_PORT_MODE_802_3_AP) { | 139 | if (val == NETXEN_PORT_MODE_802_3_AP) { |
140 | ecmd->supported = SUPPORTED_1000baseT_Full; | 140 | ecmd->supported = SUPPORTED_1000baseT_Full; |
141 | ecmd->advertising = ADVERTISED_1000baseT_Full; | 141 | ecmd->advertising = ADVERTISED_1000baseT_Full; |
@@ -156,8 +156,8 @@ netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) | |||
156 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { | 156 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { |
157 | u16 pcifn = adapter->ahw.pci_func; | 157 | u16 pcifn = adapter->ahw.pci_func; |
158 | 158 | ||
159 | adapter->hw_read_wx(adapter, | 159 | val = adapter->hw_read_wx(adapter, |
160 | P3_LINK_SPEED_REG(pcifn), &val, 4); | 160 | P3_LINK_SPEED_REG(pcifn)); |
161 | ecmd->speed = P3_LINK_SPEED_MHZ * | 161 | ecmd->speed = P3_LINK_SPEED_MHZ * |
162 | P3_LINK_SPEED_VAL(pcifn, val); | 162 | P3_LINK_SPEED_VAL(pcifn, val); |
163 | } else | 163 | } else |
@@ -423,12 +423,12 @@ netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p) | |||
423 | regs->version = (1 << 24) | (adapter->ahw.revision_id << 16) | | 423 | regs->version = (1 << 24) | (adapter->ahw.revision_id << 16) | |
424 | (adapter->pdev)->device; | 424 | (adapter->pdev)->device; |
425 | /* which mode */ | 425 | /* which mode */ |
426 | adapter->hw_read_wx(adapter, NETXEN_NIU_MODE, ®s_buff[0], 4); | 426 | regs_buff[0] = adapter->hw_read_wx(adapter, NETXEN_NIU_MODE); |
427 | mode = regs_buff[0]; | 427 | mode = regs_buff[0]; |
428 | 428 | ||
429 | /* Common registers to all the modes */ | 429 | /* Common registers to all the modes */ |
430 | adapter->hw_read_wx(adapter, | 430 | regs_buff[2] = adapter->hw_read_wx(adapter, |
431 | NETXEN_NIU_STRAP_VALUE_SAVE_HIGHER, ®s_buff[2], 4); | 431 | NETXEN_NIU_STRAP_VALUE_SAVE_HIGHER); |
432 | /* GB/XGB Mode */ | 432 | /* GB/XGB Mode */ |
433 | mode = (mode / 2) - 1; | 433 | mode = (mode / 2) - 1; |
434 | window = 0; | 434 | window = 0; |
@@ -439,9 +439,8 @@ netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p) | |||
439 | window = adapter->physical_port * | 439 | window = adapter->physical_port * |
440 | NETXEN_NIC_PORT_WINDOW; | 440 | NETXEN_NIC_PORT_WINDOW; |
441 | 441 | ||
442 | adapter->hw_read_wx(adapter, | 442 | regs_buff[i] = adapter->hw_read_wx(adapter, |
443 | niu_registers[mode].reg[i - 3] + window, | 443 | niu_registers[mode].reg[i - 3] + window); |
444 | ®s_buff[i], 4); | ||
445 | } | 444 | } |
446 | 445 | ||
447 | } | 446 | } |
@@ -465,7 +464,7 @@ static u32 netxen_nic_test_link(struct net_device *dev) | |||
465 | return !val; | 464 | return !val; |
466 | } | 465 | } |
467 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { | 466 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { |
468 | val = adapter->pci_read_normalize(adapter, CRB_XG_STATE); | 467 | val = adapter->hw_read_wx(adapter, CRB_XG_STATE); |
469 | return (val == XG_LINK_UP) ? 0 : 1; | 468 | return (val == XG_LINK_UP) ? 0 : 1; |
470 | } | 469 | } |
471 | return -EIO; | 470 | return -EIO; |
@@ -529,10 +528,10 @@ netxen_nic_get_pauseparam(struct net_device *dev, | |||
529 | if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) | 528 | if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) |
530 | return; | 529 | return; |
531 | /* get flow control settings */ | 530 | /* get flow control settings */ |
532 | netxen_nic_read_w0(adapter,NETXEN_NIU_GB_MAC_CONFIG_0(port), | 531 | val = netxen_nic_read_w0(adapter, |
533 | &val); | 532 | NETXEN_NIU_GB_MAC_CONFIG_0(port)); |
534 | pause->rx_pause = netxen_gb_get_rx_flowctl(val); | 533 | pause->rx_pause = netxen_gb_get_rx_flowctl(val); |
535 | netxen_nic_read_w0(adapter, NETXEN_NIU_GB_PAUSE_CTL, &val); | 534 | val = netxen_nic_read_w0(adapter, NETXEN_NIU_GB_PAUSE_CTL); |
536 | switch (port) { | 535 | switch (port) { |
537 | case 0: | 536 | case 0: |
538 | pause->tx_pause = !(netxen_gb_get_gb0_mask(val)); | 537 | pause->tx_pause = !(netxen_gb_get_gb0_mask(val)); |
@@ -552,7 +551,7 @@ netxen_nic_get_pauseparam(struct net_device *dev, | |||
552 | if ((port < 0) || (port > NETXEN_NIU_MAX_XG_PORTS)) | 551 | if ((port < 0) || (port > NETXEN_NIU_MAX_XG_PORTS)) |
553 | return; | 552 | return; |
554 | pause->rx_pause = 1; | 553 | pause->rx_pause = 1; |
555 | netxen_nic_read_w0(adapter, NETXEN_NIU_XG_PAUSE_CTL, &val); | 554 | val = netxen_nic_read_w0(adapter, NETXEN_NIU_XG_PAUSE_CTL); |
556 | if (port == 0) | 555 | if (port == 0) |
557 | pause->tx_pause = !(netxen_xg_get_xg0_mask(val)); | 556 | pause->tx_pause = !(netxen_xg_get_xg0_mask(val)); |
558 | else | 557 | else |
@@ -575,8 +574,8 @@ netxen_nic_set_pauseparam(struct net_device *dev, | |||
575 | if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) | 574 | if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) |
576 | return -EIO; | 575 | return -EIO; |
577 | /* set flow control */ | 576 | /* set flow control */ |
578 | netxen_nic_read_w0(adapter, | 577 | val = netxen_nic_read_w0(adapter, |
579 | NETXEN_NIU_GB_MAC_CONFIG_0(port), &val); | 578 | NETXEN_NIU_GB_MAC_CONFIG_0(port)); |
580 | 579 | ||
581 | if (pause->rx_pause) | 580 | if (pause->rx_pause) |
582 | netxen_gb_rx_flowctl(val); | 581 | netxen_gb_rx_flowctl(val); |
@@ -586,7 +585,7 @@ netxen_nic_set_pauseparam(struct net_device *dev, | |||
586 | netxen_nic_write_w0(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(port), | 585 | netxen_nic_write_w0(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(port), |
587 | val); | 586 | val); |
588 | /* set autoneg */ | 587 | /* set autoneg */ |
589 | netxen_nic_read_w0(adapter, NETXEN_NIU_GB_PAUSE_CTL, &val); | 588 | val = netxen_nic_read_w0(adapter, NETXEN_NIU_GB_PAUSE_CTL); |
590 | switch (port) { | 589 | switch (port) { |
591 | case 0: | 590 | case 0: |
592 | if (pause->tx_pause) | 591 | if (pause->tx_pause) |
@@ -618,7 +617,7 @@ netxen_nic_set_pauseparam(struct net_device *dev, | |||
618 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { | 617 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { |
619 | if ((port < 0) || (port > NETXEN_NIU_MAX_XG_PORTS)) | 618 | if ((port < 0) || (port > NETXEN_NIU_MAX_XG_PORTS)) |
620 | return -EIO; | 619 | return -EIO; |
621 | netxen_nic_read_w0(adapter, NETXEN_NIU_XG_PAUSE_CTL, &val); | 620 | val = netxen_nic_read_w0(adapter, NETXEN_NIU_XG_PAUSE_CTL); |
622 | if (port == 0) { | 621 | if (port == 0) { |
623 | if (pause->tx_pause) | 622 | if (pause->tx_pause) |
624 | netxen_xg_unset_xg0_mask(val); | 623 | netxen_xg_unset_xg0_mask(val); |
@@ -644,14 +643,14 @@ static int netxen_nic_reg_test(struct net_device *dev) | |||
644 | struct netxen_adapter *adapter = netdev_priv(dev); | 643 | struct netxen_adapter *adapter = netdev_priv(dev); |
645 | u32 data_read, data_written; | 644 | u32 data_read, data_written; |
646 | 645 | ||
647 | netxen_nic_read_w0(adapter, NETXEN_PCIX_PH_REG(0), &data_read); | 646 | data_read = netxen_nic_read_w0(adapter, NETXEN_PCIX_PH_REG(0)); |
648 | if ((data_read & 0xffff) != PHAN_VENDOR_ID) | 647 | if ((data_read & 0xffff) != PHAN_VENDOR_ID) |
649 | return 1; | 648 | return 1; |
650 | 649 | ||
651 | data_written = (u32)0xa5a5a5a5; | 650 | data_written = (u32)0xa5a5a5a5; |
652 | 651 | ||
653 | netxen_nic_reg_write(adapter, CRB_SCRATCHPAD_TEST, data_written); | 652 | netxen_nic_reg_write(adapter, CRB_SCRATCHPAD_TEST, data_written); |
654 | data_read = adapter->pci_read_normalize(adapter, CRB_SCRATCHPAD_TEST); | 653 | data_read = adapter->hw_read_wx(adapter, CRB_SCRATCHPAD_TEST); |
655 | if (data_written != data_read) | 654 | if (data_written != data_read) |
656 | return 1; | 655 | return 1; |
657 | 656 | ||
diff --git a/drivers/net/netxen/netxen_nic_hw.c b/drivers/net/netxen/netxen_nic_hw.c index 33444a20e4f7..87cda65ef66b 100644 --- a/drivers/net/netxen/netxen_nic_hw.c +++ b/drivers/net/netxen/netxen_nic_hw.c | |||
@@ -63,6 +63,31 @@ static inline void writeq(u64 val, void __iomem *addr) | |||
63 | } | 63 | } |
64 | #endif | 64 | #endif |
65 | 65 | ||
66 | #define ADDR_IN_RANGE(addr, low, high) \ | ||
67 | (((addr) < (high)) && ((addr) >= (low))) | ||
68 | |||
69 | #define PCI_OFFSET_FIRST_RANGE(adapter, off) \ | ||
70 | ((adapter)->ahw.pci_base0 + (off)) | ||
71 | #define PCI_OFFSET_SECOND_RANGE(adapter, off) \ | ||
72 | ((adapter)->ahw.pci_base1 + (off) - SECOND_PAGE_GROUP_START) | ||
73 | #define PCI_OFFSET_THIRD_RANGE(adapter, off) \ | ||
74 | ((adapter)->ahw.pci_base2 + (off) - THIRD_PAGE_GROUP_START) | ||
75 | |||
76 | static void __iomem *pci_base_offset(struct netxen_adapter *adapter, | ||
77 | unsigned long off) | ||
78 | { | ||
79 | if (ADDR_IN_RANGE(off, FIRST_PAGE_GROUP_START, FIRST_PAGE_GROUP_END)) | ||
80 | return PCI_OFFSET_FIRST_RANGE(adapter, off); | ||
81 | |||
82 | if (ADDR_IN_RANGE(off, SECOND_PAGE_GROUP_START, SECOND_PAGE_GROUP_END)) | ||
83 | return PCI_OFFSET_SECOND_RANGE(adapter, off); | ||
84 | |||
85 | if (ADDR_IN_RANGE(off, THIRD_PAGE_GROUP_START, THIRD_PAGE_GROUP_END)) | ||
86 | return PCI_OFFSET_THIRD_RANGE(adapter, off); | ||
87 | |||
88 | return NULL; | ||
89 | } | ||
90 | |||
66 | #define CRB_WIN_LOCK_TIMEOUT 100000000 | 91 | #define CRB_WIN_LOCK_TIMEOUT 100000000 |
67 | static crb_128M_2M_block_map_t crb_128M_2M_map[64] = { | 92 | static crb_128M_2M_block_map_t crb_128M_2M_map[64] = { |
68 | {{{0, 0, 0, 0} } }, /* 0: PCI */ | 93 | {{{0, 0, 0, 0} } }, /* 0: PCI */ |
@@ -294,18 +319,8 @@ static unsigned crb_hub_agt[64] = | |||
294 | 319 | ||
295 | /* PCI Windowing for DDR regions. */ | 320 | /* PCI Windowing for DDR regions. */ |
296 | 321 | ||
297 | #define ADDR_IN_RANGE(addr, low, high) \ | ||
298 | (((addr) <= (high)) && ((addr) >= (low))) | ||
299 | |||
300 | #define NETXEN_WINDOW_ONE 0x2000000 /*CRB Window: bit 25 of CRB address */ | 322 | #define NETXEN_WINDOW_ONE 0x2000000 /*CRB Window: bit 25 of CRB address */ |
301 | 323 | ||
302 | #define NETXEN_NIC_ZERO_PAUSE_ADDR 0ULL | ||
303 | #define NETXEN_NIC_UNIT_PAUSE_ADDR 0x200ULL | ||
304 | #define NETXEN_NIC_EPG_PAUSE_ADDR1 0x2200010000c28001ULL | ||
305 | #define NETXEN_NIC_EPG_PAUSE_ADDR2 0x0100088866554433ULL | ||
306 | |||
307 | #define NETXEN_NIC_WINDOW_MARGIN 0x100000 | ||
308 | |||
309 | int netxen_nic_set_mac(struct net_device *netdev, void *p) | 324 | int netxen_nic_set_mac(struct net_device *netdev, void *p) |
310 | { | 325 | { |
311 | struct netxen_adapter *adapter = netdev_priv(netdev); | 326 | struct netxen_adapter *adapter = netdev_priv(netdev); |
@@ -346,9 +361,9 @@ netxen_nic_enable_mcast_filter(struct netxen_adapter *adapter) | |||
346 | if (adapter->mc_enabled) | 361 | if (adapter->mc_enabled) |
347 | return 0; | 362 | return 0; |
348 | 363 | ||
349 | adapter->hw_read_wx(adapter, NETXEN_MAC_ADDR_CNTL_REG, &val, 4); | 364 | val = adapter->hw_read_wx(adapter, NETXEN_MAC_ADDR_CNTL_REG); |
350 | val |= (1UL << (28+port)); | 365 | val |= (1UL << (28+port)); |
351 | adapter->hw_write_wx(adapter, NETXEN_MAC_ADDR_CNTL_REG, &val, 4); | 366 | adapter->hw_write_wx(adapter, NETXEN_MAC_ADDR_CNTL_REG, val); |
352 | 367 | ||
353 | /* add broadcast addr to filter */ | 368 | /* add broadcast addr to filter */ |
354 | val = 0xffffff; | 369 | val = 0xffffff; |
@@ -377,9 +392,9 @@ netxen_nic_disable_mcast_filter(struct netxen_adapter *adapter) | |||
377 | if (!adapter->mc_enabled) | 392 | if (!adapter->mc_enabled) |
378 | return 0; | 393 | return 0; |
379 | 394 | ||
380 | adapter->hw_read_wx(adapter, NETXEN_MAC_ADDR_CNTL_REG, &val, 4); | 395 | val = adapter->hw_read_wx(adapter, NETXEN_MAC_ADDR_CNTL_REG); |
381 | val &= ~(1UL << (28+port)); | 396 | val &= ~(1UL << (28+port)); |
382 | adapter->hw_write_wx(adapter, NETXEN_MAC_ADDR_CNTL_REG, &val, 4); | 397 | adapter->hw_write_wx(adapter, NETXEN_MAC_ADDR_CNTL_REG, val); |
383 | 398 | ||
384 | val = MAC_HI(addr); | 399 | val = MAC_HI(addr); |
385 | netxen_crb_writelit_adapter(adapter, NETXEN_UNICAST_ADDR(port, 0), val); | 400 | netxen_crb_writelit_adapter(adapter, NETXEN_UNICAST_ADDR(port, 0), val); |
@@ -848,8 +863,8 @@ int netxen_p3_get_mac_addr(struct netxen_adapter *adapter, __le64 *mac) | |||
848 | crbaddr = CRB_MAC_BLOCK_START + | 863 | crbaddr = CRB_MAC_BLOCK_START + |
849 | (4 * ((pci_func/2) * 3)) + (4 * (pci_func & 1)); | 864 | (4 * ((pci_func/2) * 3)) + (4 * (pci_func & 1)); |
850 | 865 | ||
851 | adapter->hw_read_wx(adapter, crbaddr, &mac_lo, 4); | 866 | mac_lo = adapter->hw_read_wx(adapter, crbaddr); |
852 | adapter->hw_read_wx(adapter, crbaddr+4, &mac_hi, 4); | 867 | mac_hi = adapter->hw_read_wx(adapter, crbaddr+4); |
853 | 868 | ||
854 | if (pci_func & 1) | 869 | if (pci_func & 1) |
855 | *mac = le64_to_cpu((mac_lo >> 16) | ((u64)mac_hi << 16)); | 870 | *mac = le64_to_cpu((mac_lo >> 16) | ((u64)mac_hi << 16)); |
@@ -867,8 +882,8 @@ static int crb_win_lock(struct netxen_adapter *adapter) | |||
867 | 882 | ||
868 | while (!done) { | 883 | while (!done) { |
869 | /* acquire semaphore3 from PCI HW block */ | 884 | /* acquire semaphore3 from PCI HW block */ |
870 | adapter->hw_read_wx(adapter, | 885 | done = adapter->hw_read_wx(adapter, |
871 | NETXEN_PCIE_REG(PCIE_SEM7_LOCK), &done, 4); | 886 | NETXEN_PCIE_REG(PCIE_SEM7_LOCK)); |
872 | if (done == 1) | 887 | if (done == 1) |
873 | break; | 888 | break; |
874 | if (timeout >= CRB_WIN_LOCK_TIMEOUT) | 889 | if (timeout >= CRB_WIN_LOCK_TIMEOUT) |
@@ -885,8 +900,8 @@ static void crb_win_unlock(struct netxen_adapter *adapter) | |||
885 | { | 900 | { |
886 | int val; | 901 | int val; |
887 | 902 | ||
888 | adapter->hw_read_wx(adapter, | 903 | val = adapter->hw_read_wx(adapter, |
889 | NETXEN_PCIE_REG(PCIE_SEM7_UNLOCK), &val, 4); | 904 | NETXEN_PCIE_REG(PCIE_SEM7_UNLOCK)); |
890 | } | 905 | } |
891 | 906 | ||
892 | /* | 907 | /* |
@@ -1022,7 +1037,7 @@ netxen_do_load_firmware(struct netxen_adapter *adapter, const char *fwname, | |||
1022 | dev_info(&pdev->dev, "loading firmware from flash\n"); | 1037 | dev_info(&pdev->dev, "loading firmware from flash\n"); |
1023 | 1038 | ||
1024 | if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) | 1039 | if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) |
1025 | adapter->pci_write_normalize(adapter, | 1040 | adapter->hw_write_wx(adapter, |
1026 | NETXEN_ROMUSB_GLB_CAS_RST, 1); | 1041 | NETXEN_ROMUSB_GLB_CAS_RST, 1); |
1027 | 1042 | ||
1028 | if (fw) { | 1043 | if (fw) { |
@@ -1075,12 +1090,12 @@ netxen_do_load_firmware(struct netxen_adapter *adapter, const char *fwname, | |||
1075 | msleep(1); | 1090 | msleep(1); |
1076 | 1091 | ||
1077 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) | 1092 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) |
1078 | adapter->pci_write_normalize(adapter, | 1093 | adapter->hw_write_wx(adapter, |
1079 | NETXEN_ROMUSB_GLB_SW_RESET, 0x80001d); | 1094 | NETXEN_ROMUSB_GLB_SW_RESET, 0x80001d); |
1080 | else { | 1095 | else { |
1081 | adapter->pci_write_normalize(adapter, | 1096 | adapter->hw_write_wx(adapter, |
1082 | NETXEN_ROMUSB_GLB_CHIP_CLK_CTRL, 0x3fff); | 1097 | NETXEN_ROMUSB_GLB_CHIP_CLK_CTRL, 0x3fff); |
1083 | adapter->pci_write_normalize(adapter, | 1098 | adapter->hw_write_wx(adapter, |
1084 | NETXEN_ROMUSB_GLB_CAS_RST, 0); | 1099 | NETXEN_ROMUSB_GLB_CAS_RST, 0); |
1085 | } | 1100 | } |
1086 | 1101 | ||
@@ -1168,8 +1183,8 @@ request_mn: | |||
1168 | netxen_rom_fast_read(adapter, | 1183 | netxen_rom_fast_read(adapter, |
1169 | NX_FW_VERSION_OFFSET, (int *)&flashed_ver); | 1184 | NX_FW_VERSION_OFFSET, (int *)&flashed_ver); |
1170 | if (flashed_ver >= NETXEN_VERSION_CODE(4, 0, 220)) { | 1185 | if (flashed_ver >= NETXEN_VERSION_CODE(4, 0, 220)) { |
1171 | adapter->hw_read_wx(adapter, | 1186 | capability = adapter->hw_read_wx(adapter, |
1172 | NX_PEG_TUNE_CAPABILITY, &capability, 4); | 1187 | NX_PEG_TUNE_CAPABILITY); |
1173 | if (capability & NX_PEG_TUNE_MN_PRESENT) { | 1188 | if (capability & NX_PEG_TUNE_MN_PRESENT) { |
1174 | fw_type = NX_P3_MN_ROMIMAGE; | 1189 | fw_type = NX_P3_MN_ROMIMAGE; |
1175 | goto request_fw; | 1190 | goto request_fw; |
@@ -1209,13 +1224,10 @@ load_fw: | |||
1209 | } | 1224 | } |
1210 | 1225 | ||
1211 | int | 1226 | int |
1212 | netxen_nic_hw_write_wx_128M(struct netxen_adapter *adapter, | 1227 | netxen_nic_hw_write_wx_128M(struct netxen_adapter *adapter, ulong off, u32 data) |
1213 | ulong off, void *data, int len) | ||
1214 | { | 1228 | { |
1215 | void __iomem *addr; | 1229 | void __iomem *addr; |
1216 | 1230 | ||
1217 | BUG_ON(len != 4); | ||
1218 | |||
1219 | if (ADDR_IN_WINDOW1(off)) { | 1231 | if (ADDR_IN_WINDOW1(off)) { |
1220 | addr = NETXEN_CRB_NORMALIZE(adapter, off); | 1232 | addr = NETXEN_CRB_NORMALIZE(adapter, off); |
1221 | } else { /* Window 0 */ | 1233 | } else { /* Window 0 */ |
@@ -1228,7 +1240,7 @@ netxen_nic_hw_write_wx_128M(struct netxen_adapter *adapter, | |||
1228 | return 1; | 1240 | return 1; |
1229 | } | 1241 | } |
1230 | 1242 | ||
1231 | writel(*(u32 *) data, addr); | 1243 | writel(data, addr); |
1232 | 1244 | ||
1233 | if (!ADDR_IN_WINDOW1(off)) | 1245 | if (!ADDR_IN_WINDOW1(off)) |
1234 | netxen_nic_pci_change_crbwindow_128M(adapter, 1); | 1246 | netxen_nic_pci_change_crbwindow_128M(adapter, 1); |
@@ -1236,13 +1248,11 @@ netxen_nic_hw_write_wx_128M(struct netxen_adapter *adapter, | |||
1236 | return 0; | 1248 | return 0; |
1237 | } | 1249 | } |
1238 | 1250 | ||
1239 | int | 1251 | u32 |
1240 | netxen_nic_hw_read_wx_128M(struct netxen_adapter *adapter, | 1252 | netxen_nic_hw_read_wx_128M(struct netxen_adapter *adapter, ulong off) |
1241 | ulong off, void *data, int len) | ||
1242 | { | 1253 | { |
1243 | void __iomem *addr; | 1254 | void __iomem *addr; |
1244 | 1255 | u32 data; | |
1245 | BUG_ON(len != 4); | ||
1246 | 1256 | ||
1247 | if (ADDR_IN_WINDOW1(off)) { /* Window 1 */ | 1257 | if (ADDR_IN_WINDOW1(off)) { /* Window 1 */ |
1248 | addr = NETXEN_CRB_NORMALIZE(adapter, off); | 1258 | addr = NETXEN_CRB_NORMALIZE(adapter, off); |
@@ -1256,24 +1266,21 @@ netxen_nic_hw_read_wx_128M(struct netxen_adapter *adapter, | |||
1256 | return 1; | 1266 | return 1; |
1257 | } | 1267 | } |
1258 | 1268 | ||
1259 | *(u32 *)data = readl(addr); | 1269 | data = readl(addr); |
1260 | 1270 | ||
1261 | if (!ADDR_IN_WINDOW1(off)) | 1271 | if (!ADDR_IN_WINDOW1(off)) |
1262 | netxen_nic_pci_change_crbwindow_128M(adapter, 1); | 1272 | netxen_nic_pci_change_crbwindow_128M(adapter, 1); |
1263 | 1273 | ||
1264 | return 0; | 1274 | return data; |
1265 | } | 1275 | } |
1266 | 1276 | ||
1267 | int | 1277 | int |
1268 | netxen_nic_hw_write_wx_2M(struct netxen_adapter *adapter, | 1278 | netxen_nic_hw_write_wx_2M(struct netxen_adapter *adapter, ulong off, u32 data) |
1269 | ulong off, void *data, int len) | ||
1270 | { | 1279 | { |
1271 | unsigned long flags = 0; | 1280 | unsigned long flags = 0; |
1272 | int rv; | 1281 | int rv; |
1273 | 1282 | ||
1274 | BUG_ON(len != 4); | 1283 | rv = netxen_nic_pci_get_crb_addr_2M(adapter, &off, 4); |
1275 | |||
1276 | rv = netxen_nic_pci_get_crb_addr_2M(adapter, &off, len); | ||
1277 | 1284 | ||
1278 | if (rv == -1) { | 1285 | if (rv == -1) { |
1279 | printk(KERN_ERR "%s: invalid offset: 0x%016lx\n", | 1286 | printk(KERN_ERR "%s: invalid offset: 0x%016lx\n", |
@@ -1286,26 +1293,24 @@ netxen_nic_hw_write_wx_2M(struct netxen_adapter *adapter, | |||
1286 | write_lock_irqsave(&adapter->adapter_lock, flags); | 1293 | write_lock_irqsave(&adapter->adapter_lock, flags); |
1287 | crb_win_lock(adapter); | 1294 | crb_win_lock(adapter); |
1288 | netxen_nic_pci_set_crbwindow_2M(adapter, &off); | 1295 | netxen_nic_pci_set_crbwindow_2M(adapter, &off); |
1289 | writel(*(uint32_t *)data, (void __iomem *)off); | 1296 | writel(data, (void __iomem *)off); |
1290 | crb_win_unlock(adapter); | 1297 | crb_win_unlock(adapter); |
1291 | write_unlock_irqrestore(&adapter->adapter_lock, flags); | 1298 | write_unlock_irqrestore(&adapter->adapter_lock, flags); |
1292 | } else | 1299 | } else |
1293 | writel(*(uint32_t *)data, (void __iomem *)off); | 1300 | writel(data, (void __iomem *)off); |
1294 | 1301 | ||
1295 | 1302 | ||
1296 | return 0; | 1303 | return 0; |
1297 | } | 1304 | } |
1298 | 1305 | ||
1299 | int | 1306 | u32 |
1300 | netxen_nic_hw_read_wx_2M(struct netxen_adapter *adapter, | 1307 | netxen_nic_hw_read_wx_2M(struct netxen_adapter *adapter, ulong off) |
1301 | ulong off, void *data, int len) | ||
1302 | { | 1308 | { |
1303 | unsigned long flags = 0; | 1309 | unsigned long flags = 0; |
1304 | int rv; | 1310 | int rv; |
1311 | u32 data; | ||
1305 | 1312 | ||
1306 | BUG_ON(len != 4); | 1313 | rv = netxen_nic_pci_get_crb_addr_2M(adapter, &off, 4); |
1307 | |||
1308 | rv = netxen_nic_pci_get_crb_addr_2M(adapter, &off, len); | ||
1309 | 1314 | ||
1310 | if (rv == -1) { | 1315 | if (rv == -1) { |
1311 | printk(KERN_ERR "%s: invalid offset: 0x%016lx\n", | 1316 | printk(KERN_ERR "%s: invalid offset: 0x%016lx\n", |
@@ -1318,47 +1323,45 @@ netxen_nic_hw_read_wx_2M(struct netxen_adapter *adapter, | |||
1318 | write_lock_irqsave(&adapter->adapter_lock, flags); | 1323 | write_lock_irqsave(&adapter->adapter_lock, flags); |
1319 | crb_win_lock(adapter); | 1324 | crb_win_lock(adapter); |
1320 | netxen_nic_pci_set_crbwindow_2M(adapter, &off); | 1325 | netxen_nic_pci_set_crbwindow_2M(adapter, &off); |
1321 | *(uint32_t *)data = readl((void __iomem *)off); | 1326 | data = readl((void __iomem *)off); |
1322 | crb_win_unlock(adapter); | 1327 | crb_win_unlock(adapter); |
1323 | write_unlock_irqrestore(&adapter->adapter_lock, flags); | 1328 | write_unlock_irqrestore(&adapter->adapter_lock, flags); |
1324 | } else | 1329 | } else |
1325 | *(uint32_t *)data = readl((void __iomem *)off); | 1330 | data = readl((void __iomem *)off); |
1326 | 1331 | ||
1327 | return 0; | 1332 | return data; |
1328 | } | 1333 | } |
1329 | 1334 | ||
1330 | void netxen_nic_reg_write(struct netxen_adapter *adapter, u64 off, u32 val) | 1335 | void netxen_nic_reg_write(struct netxen_adapter *adapter, u64 off, u32 val) |
1331 | { | 1336 | { |
1332 | adapter->hw_write_wx(adapter, off, &val, 4); | 1337 | adapter->hw_write_wx(adapter, off, val); |
1333 | } | 1338 | } |
1334 | 1339 | ||
1335 | int netxen_nic_reg_read(struct netxen_adapter *adapter, u64 off) | 1340 | int netxen_nic_reg_read(struct netxen_adapter *adapter, u64 off) |
1336 | { | 1341 | { |
1337 | int val; | 1342 | return adapter->hw_read_wx(adapter, off); |
1338 | adapter->hw_read_wx(adapter, off, &val, 4); | ||
1339 | return val; | ||
1340 | } | 1343 | } |
1341 | 1344 | ||
1342 | /* Change the window to 0, write and change back to window 1. */ | 1345 | /* Change the window to 0, write and change back to window 1. */ |
1343 | void netxen_nic_write_w0(struct netxen_adapter *adapter, u32 index, u32 value) | 1346 | void netxen_nic_write_w0(struct netxen_adapter *adapter, u32 index, u32 value) |
1344 | { | 1347 | { |
1345 | adapter->hw_write_wx(adapter, index, &value, 4); | 1348 | adapter->hw_write_wx(adapter, index, value); |
1346 | } | 1349 | } |
1347 | 1350 | ||
1348 | /* Change the window to 0, read and change back to window 1. */ | 1351 | /* Change the window to 0, read and change back to window 1. */ |
1349 | void netxen_nic_read_w0(struct netxen_adapter *adapter, u32 index, u32 *value) | 1352 | u32 netxen_nic_read_w0(struct netxen_adapter *adapter, u32 index) |
1350 | { | 1353 | { |
1351 | adapter->hw_read_wx(adapter, index, value, 4); | 1354 | return adapter->hw_read_wx(adapter, index); |
1352 | } | 1355 | } |
1353 | 1356 | ||
1354 | void netxen_nic_write_w1(struct netxen_adapter *adapter, u32 index, u32 value) | 1357 | void netxen_nic_write_w1(struct netxen_adapter *adapter, u32 index, u32 value) |
1355 | { | 1358 | { |
1356 | adapter->hw_write_wx(adapter, index, &value, 4); | 1359 | adapter->hw_write_wx(adapter, index, value); |
1357 | } | 1360 | } |
1358 | 1361 | ||
1359 | void netxen_nic_read_w1(struct netxen_adapter *adapter, u32 index, u32 *value) | 1362 | u32 netxen_nic_read_w1(struct netxen_adapter *adapter, u32 index) |
1360 | { | 1363 | { |
1361 | adapter->hw_read_wx(adapter, index, value, 4); | 1364 | return adapter->hw_read_wx(adapter, index); |
1362 | } | 1365 | } |
1363 | 1366 | ||
1364 | /* | 1367 | /* |
@@ -1461,17 +1464,6 @@ u32 netxen_nic_pci_read_immediate_128M(struct netxen_adapter *adapter, u64 off) | |||
1461 | return readl((void __iomem *)(pci_base_offset(adapter, off))); | 1464 | return readl((void __iomem *)(pci_base_offset(adapter, off))); |
1462 | } | 1465 | } |
1463 | 1466 | ||
1464 | void netxen_nic_pci_write_normalize_128M(struct netxen_adapter *adapter, | ||
1465 | u64 off, u32 data) | ||
1466 | { | ||
1467 | writel(data, NETXEN_CRB_NORMALIZE(adapter, off)); | ||
1468 | } | ||
1469 | |||
1470 | u32 netxen_nic_pci_read_normalize_128M(struct netxen_adapter *adapter, u64 off) | ||
1471 | { | ||
1472 | return readl(NETXEN_CRB_NORMALIZE(adapter, off)); | ||
1473 | } | ||
1474 | |||
1475 | unsigned long | 1467 | unsigned long |
1476 | netxen_nic_pci_set_window_2M(struct netxen_adapter *adapter, | 1468 | netxen_nic_pci_set_window_2M(struct netxen_adapter *adapter, |
1477 | unsigned long long addr) | 1469 | unsigned long long addr) |
@@ -1485,10 +1477,9 @@ netxen_nic_pci_set_window_2M(struct netxen_adapter *adapter, | |||
1485 | adapter->ahw.ddr_mn_window = window; | 1477 | adapter->ahw.ddr_mn_window = window; |
1486 | adapter->hw_write_wx(adapter, | 1478 | adapter->hw_write_wx(adapter, |
1487 | adapter->ahw.mn_win_crb | NETXEN_PCI_CRBSPACE, | 1479 | adapter->ahw.mn_win_crb | NETXEN_PCI_CRBSPACE, |
1488 | &window, 4); | 1480 | window); |
1489 | adapter->hw_read_wx(adapter, | 1481 | win_read = adapter->hw_read_wx(adapter, |
1490 | adapter->ahw.mn_win_crb | NETXEN_PCI_CRBSPACE, | 1482 | adapter->ahw.mn_win_crb | NETXEN_PCI_CRBSPACE); |
1491 | &win_read, 4); | ||
1492 | if ((win_read << 17) != window) { | 1483 | if ((win_read << 17) != window) { |
1493 | printk(KERN_INFO "Written MNwin (0x%x) != " | 1484 | printk(KERN_INFO "Written MNwin (0x%x) != " |
1494 | "Read MNwin (0x%x)\n", window, win_read); | 1485 | "Read MNwin (0x%x)\n", window, win_read); |
@@ -1505,10 +1496,9 @@ netxen_nic_pci_set_window_2M(struct netxen_adapter *adapter, | |||
1505 | adapter->ahw.ddr_mn_window = window; | 1496 | adapter->ahw.ddr_mn_window = window; |
1506 | adapter->hw_write_wx(adapter, | 1497 | adapter->hw_write_wx(adapter, |
1507 | adapter->ahw.mn_win_crb | NETXEN_PCI_CRBSPACE, | 1498 | adapter->ahw.mn_win_crb | NETXEN_PCI_CRBSPACE, |
1508 | &window, 4); | 1499 | window); |
1509 | adapter->hw_read_wx(adapter, | 1500 | win_read = adapter->hw_read_wx(adapter, |
1510 | adapter->ahw.mn_win_crb | NETXEN_PCI_CRBSPACE, | 1501 | adapter->ahw.mn_win_crb | NETXEN_PCI_CRBSPACE); |
1511 | &win_read, 4); | ||
1512 | if ((win_read >> 7) != window) { | 1502 | if ((win_read >> 7) != window) { |
1513 | printk(KERN_INFO "%s: Written OCMwin (0x%x) != " | 1503 | printk(KERN_INFO "%s: Written OCMwin (0x%x) != " |
1514 | "Read OCMwin (0x%x)\n", | 1504 | "Read OCMwin (0x%x)\n", |
@@ -1523,10 +1513,9 @@ netxen_nic_pci_set_window_2M(struct netxen_adapter *adapter, | |||
1523 | adapter->ahw.qdr_sn_window = window; | 1513 | adapter->ahw.qdr_sn_window = window; |
1524 | adapter->hw_write_wx(adapter, | 1514 | adapter->hw_write_wx(adapter, |
1525 | adapter->ahw.ms_win_crb | NETXEN_PCI_CRBSPACE, | 1515 | adapter->ahw.ms_win_crb | NETXEN_PCI_CRBSPACE, |
1526 | &window, 4); | 1516 | window); |
1527 | adapter->hw_read_wx(adapter, | 1517 | win_read = adapter->hw_read_wx(adapter, |
1528 | adapter->ahw.ms_win_crb | NETXEN_PCI_CRBSPACE, | 1518 | adapter->ahw.ms_win_crb | NETXEN_PCI_CRBSPACE); |
1529 | &win_read, 4); | ||
1530 | if (win_read != window) { | 1519 | if (win_read != window) { |
1531 | printk(KERN_INFO "%s: Written MSwin (0x%x) != " | 1520 | printk(KERN_INFO "%s: Written MSwin (0x%x) != " |
1532 | "Read MSwin (0x%x)\n", | 1521 | "Read MSwin (0x%x)\n", |
@@ -1973,26 +1962,26 @@ netxen_nic_pci_mem_write_2M(struct netxen_adapter *adapter, | |||
1973 | for (i = 0; i < loop; i++) { | 1962 | for (i = 0; i < loop; i++) { |
1974 | temp = off8 + (i << 3); | 1963 | temp = off8 + (i << 3); |
1975 | adapter->hw_write_wx(adapter, | 1964 | adapter->hw_write_wx(adapter, |
1976 | mem_crb+MIU_TEST_AGT_ADDR_LO, &temp, 4); | 1965 | mem_crb+MIU_TEST_AGT_ADDR_LO, temp); |
1977 | temp = 0; | 1966 | temp = 0; |
1978 | adapter->hw_write_wx(adapter, | 1967 | adapter->hw_write_wx(adapter, |
1979 | mem_crb+MIU_TEST_AGT_ADDR_HI, &temp, 4); | 1968 | mem_crb+MIU_TEST_AGT_ADDR_HI, temp); |
1980 | temp = word[i] & 0xffffffff; | 1969 | temp = word[i] & 0xffffffff; |
1981 | adapter->hw_write_wx(adapter, | 1970 | adapter->hw_write_wx(adapter, |
1982 | mem_crb+MIU_TEST_AGT_WRDATA_LO, &temp, 4); | 1971 | mem_crb+MIU_TEST_AGT_WRDATA_LO, temp); |
1983 | temp = (word[i] >> 32) & 0xffffffff; | 1972 | temp = (word[i] >> 32) & 0xffffffff; |
1984 | adapter->hw_write_wx(adapter, | 1973 | adapter->hw_write_wx(adapter, |
1985 | mem_crb+MIU_TEST_AGT_WRDATA_HI, &temp, 4); | 1974 | mem_crb+MIU_TEST_AGT_WRDATA_HI, temp); |
1986 | temp = MIU_TA_CTL_ENABLE | MIU_TA_CTL_WRITE; | 1975 | temp = MIU_TA_CTL_ENABLE | MIU_TA_CTL_WRITE; |
1987 | adapter->hw_write_wx(adapter, | 1976 | adapter->hw_write_wx(adapter, |
1988 | mem_crb+MIU_TEST_AGT_CTRL, &temp, 4); | 1977 | mem_crb+MIU_TEST_AGT_CTRL, temp); |
1989 | temp = MIU_TA_CTL_START | MIU_TA_CTL_ENABLE | MIU_TA_CTL_WRITE; | 1978 | temp = MIU_TA_CTL_START | MIU_TA_CTL_ENABLE | MIU_TA_CTL_WRITE; |
1990 | adapter->hw_write_wx(adapter, | 1979 | adapter->hw_write_wx(adapter, |
1991 | mem_crb+MIU_TEST_AGT_CTRL, &temp, 4); | 1980 | mem_crb+MIU_TEST_AGT_CTRL, temp); |
1992 | 1981 | ||
1993 | for (j = 0; j < MAX_CTL_CHECK; j++) { | 1982 | for (j = 0; j < MAX_CTL_CHECK; j++) { |
1994 | adapter->hw_read_wx(adapter, | 1983 | temp = adapter->hw_read_wx(adapter, |
1995 | mem_crb + MIU_TEST_AGT_CTRL, &temp, 4); | 1984 | mem_crb + MIU_TEST_AGT_CTRL); |
1996 | if ((temp & MIU_TA_CTL_BUSY) == 0) | 1985 | if ((temp & MIU_TA_CTL_BUSY) == 0) |
1997 | break; | 1986 | break; |
1998 | } | 1987 | } |
@@ -2050,20 +2039,20 @@ netxen_nic_pci_mem_read_2M(struct netxen_adapter *adapter, | |||
2050 | for (i = 0; i < loop; i++) { | 2039 | for (i = 0; i < loop; i++) { |
2051 | temp = off8 + (i << 3); | 2040 | temp = off8 + (i << 3); |
2052 | adapter->hw_write_wx(adapter, | 2041 | adapter->hw_write_wx(adapter, |
2053 | mem_crb + MIU_TEST_AGT_ADDR_LO, &temp, 4); | 2042 | mem_crb + MIU_TEST_AGT_ADDR_LO, temp); |
2054 | temp = 0; | 2043 | temp = 0; |
2055 | adapter->hw_write_wx(adapter, | 2044 | adapter->hw_write_wx(adapter, |
2056 | mem_crb + MIU_TEST_AGT_ADDR_HI, &temp, 4); | 2045 | mem_crb + MIU_TEST_AGT_ADDR_HI, temp); |
2057 | temp = MIU_TA_CTL_ENABLE; | 2046 | temp = MIU_TA_CTL_ENABLE; |
2058 | adapter->hw_write_wx(adapter, | 2047 | adapter->hw_write_wx(adapter, |
2059 | mem_crb + MIU_TEST_AGT_CTRL, &temp, 4); | 2048 | mem_crb + MIU_TEST_AGT_CTRL, temp); |
2060 | temp = MIU_TA_CTL_START | MIU_TA_CTL_ENABLE; | 2049 | temp = MIU_TA_CTL_START | MIU_TA_CTL_ENABLE; |
2061 | adapter->hw_write_wx(adapter, | 2050 | adapter->hw_write_wx(adapter, |
2062 | mem_crb + MIU_TEST_AGT_CTRL, &temp, 4); | 2051 | mem_crb + MIU_TEST_AGT_CTRL, temp); |
2063 | 2052 | ||
2064 | for (j = 0; j < MAX_CTL_CHECK; j++) { | 2053 | for (j = 0; j < MAX_CTL_CHECK; j++) { |
2065 | adapter->hw_read_wx(adapter, | 2054 | temp = adapter->hw_read_wx(adapter, |
2066 | mem_crb + MIU_TEST_AGT_CTRL, &temp, 4); | 2055 | mem_crb + MIU_TEST_AGT_CTRL); |
2067 | if ((temp & MIU_TA_CTL_BUSY) == 0) | 2056 | if ((temp & MIU_TA_CTL_BUSY) == 0) |
2068 | break; | 2057 | break; |
2069 | } | 2058 | } |
@@ -2078,8 +2067,8 @@ netxen_nic_pci_mem_read_2M(struct netxen_adapter *adapter, | |||
2078 | start = off0[i] >> 2; | 2067 | start = off0[i] >> 2; |
2079 | end = (off0[i] + sz[i] - 1) >> 2; | 2068 | end = (off0[i] + sz[i] - 1) >> 2; |
2080 | for (k = start; k <= end; k++) { | 2069 | for (k = start; k <= end; k++) { |
2081 | adapter->hw_read_wx(adapter, | 2070 | temp = adapter->hw_read_wx(adapter, |
2082 | mem_crb + MIU_TEST_AGT_RDDATA(k), &temp, 4); | 2071 | mem_crb + MIU_TEST_AGT_RDDATA(k)); |
2083 | word[i] |= ((uint64_t)temp << (32 * k)); | 2072 | word[i] |= ((uint64_t)temp << (32 * k)); |
2084 | } | 2073 | } |
2085 | } | 2074 | } |
@@ -2122,29 +2111,14 @@ netxen_nic_pci_mem_read_2M(struct netxen_adapter *adapter, | |||
2122 | int netxen_nic_pci_write_immediate_2M(struct netxen_adapter *adapter, | 2111 | int netxen_nic_pci_write_immediate_2M(struct netxen_adapter *adapter, |
2123 | u64 off, u32 data) | 2112 | u64 off, u32 data) |
2124 | { | 2113 | { |
2125 | adapter->hw_write_wx(adapter, off, &data, 4); | 2114 | adapter->hw_write_wx(adapter, off, data); |
2126 | 2115 | ||
2127 | return 0; | 2116 | return 0; |
2128 | } | 2117 | } |
2129 | 2118 | ||
2130 | u32 netxen_nic_pci_read_immediate_2M(struct netxen_adapter *adapter, u64 off) | 2119 | u32 netxen_nic_pci_read_immediate_2M(struct netxen_adapter *adapter, u64 off) |
2131 | { | 2120 | { |
2132 | u32 temp; | 2121 | return adapter->hw_read_wx(adapter, off); |
2133 | adapter->hw_read_wx(adapter, off, &temp, 4); | ||
2134 | return temp; | ||
2135 | } | ||
2136 | |||
2137 | void netxen_nic_pci_write_normalize_2M(struct netxen_adapter *adapter, | ||
2138 | u64 off, u32 data) | ||
2139 | { | ||
2140 | adapter->hw_write_wx(adapter, off, &data, 4); | ||
2141 | } | ||
2142 | |||
2143 | u32 netxen_nic_pci_read_normalize_2M(struct netxen_adapter *adapter, u64 off) | ||
2144 | { | ||
2145 | u32 temp; | ||
2146 | adapter->hw_read_wx(adapter, off, &temp, 4); | ||
2147 | return temp; | ||
2148 | } | 2122 | } |
2149 | 2123 | ||
2150 | int netxen_nic_get_board_info(struct netxen_adapter *adapter) | 2124 | int netxen_nic_get_board_info(struct netxen_adapter *adapter) |
@@ -2253,7 +2227,7 @@ void | |||
2253 | netxen_crb_writelit_adapter(struct netxen_adapter *adapter, | 2227 | netxen_crb_writelit_adapter(struct netxen_adapter *adapter, |
2254 | unsigned long off, int data) | 2228 | unsigned long off, int data) |
2255 | { | 2229 | { |
2256 | adapter->hw_write_wx(adapter, off, &data, 4); | 2230 | adapter->hw_write_wx(adapter, off, data); |
2257 | } | 2231 | } |
2258 | 2232 | ||
2259 | void netxen_nic_set_link_parameters(struct netxen_adapter *adapter) | 2233 | void netxen_nic_set_link_parameters(struct netxen_adapter *adapter) |
@@ -2270,8 +2244,8 @@ void netxen_nic_set_link_parameters(struct netxen_adapter *adapter) | |||
2270 | } | 2244 | } |
2271 | 2245 | ||
2272 | if (adapter->ahw.port_type == NETXEN_NIC_GBE) { | 2246 | if (adapter->ahw.port_type == NETXEN_NIC_GBE) { |
2273 | adapter->hw_read_wx(adapter, | 2247 | port_mode = adapter->hw_read_wx(adapter, |
2274 | NETXEN_PORT_MODE_ADDR, &port_mode, 4); | 2248 | NETXEN_PORT_MODE_ADDR); |
2275 | if (port_mode == NETXEN_PORT_MODE_802_3_AP) { | 2249 | if (port_mode == NETXEN_PORT_MODE_802_3_AP) { |
2276 | adapter->link_speed = SPEED_1000; | 2250 | adapter->link_speed = SPEED_1000; |
2277 | adapter->link_duplex = DUPLEX_FULL; | 2251 | adapter->link_duplex = DUPLEX_FULL; |
@@ -2348,9 +2322,9 @@ void netxen_nic_get_firmware_info(struct netxen_adapter *adapter) | |||
2348 | addr += sizeof(u32); | 2322 | addr += sizeof(u32); |
2349 | } | 2323 | } |
2350 | 2324 | ||
2351 | adapter->hw_read_wx(adapter, NETXEN_FW_VERSION_MAJOR, &fw_major, 4); | 2325 | fw_major = adapter->hw_read_wx(adapter, NETXEN_FW_VERSION_MAJOR); |
2352 | adapter->hw_read_wx(adapter, NETXEN_FW_VERSION_MINOR, &fw_minor, 4); | 2326 | fw_minor = adapter->hw_read_wx(adapter, NETXEN_FW_VERSION_MINOR); |
2353 | adapter->hw_read_wx(adapter, NETXEN_FW_VERSION_SUB, &fw_build, 4); | 2327 | fw_build = adapter->hw_read_wx(adapter, NETXEN_FW_VERSION_SUB); |
2354 | 2328 | ||
2355 | adapter->fw_major = fw_major; | 2329 | adapter->fw_major = fw_major; |
2356 | adapter->fw_version = NETXEN_VERSION_CODE(fw_major, fw_minor, fw_build); | 2330 | adapter->fw_version = NETXEN_VERSION_CODE(fw_major, fw_minor, fw_build); |
@@ -2373,8 +2347,7 @@ void netxen_nic_get_firmware_info(struct netxen_adapter *adapter) | |||
2373 | fw_major, fw_minor, fw_build); | 2347 | fw_major, fw_minor, fw_build); |
2374 | 2348 | ||
2375 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { | 2349 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { |
2376 | adapter->hw_read_wx(adapter, | 2350 | i = adapter->hw_read_wx(adapter, NETXEN_MIU_MN_CONTROL); |
2377 | NETXEN_MIU_MN_CONTROL, &i, 4); | ||
2378 | adapter->ahw.cut_through = (i & 0x4) ? 1 : 0; | 2351 | adapter->ahw.cut_through = (i & 0x4) ? 1 : 0; |
2379 | dev_info(&pdev->dev, "firmware running in %s mode\n", | 2352 | dev_info(&pdev->dev, "firmware running in %s mode\n", |
2380 | adapter->ahw.cut_through ? "cut-through" : "legacy"); | 2353 | adapter->ahw.cut_through ? "cut-through" : "legacy"); |
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c index 974783c45321..83116c2817b0 100644 --- a/drivers/net/netxen/netxen_nic_init.c +++ b/drivers/net/netxen/netxen_nic_init.c | |||
@@ -368,8 +368,8 @@ static int rom_lock(struct netxen_adapter *adapter) | |||
368 | 368 | ||
369 | while (!done) { | 369 | while (!done) { |
370 | /* acquire semaphore2 from PCI HW block */ | 370 | /* acquire semaphore2 from PCI HW block */ |
371 | netxen_nic_read_w0(adapter, NETXEN_PCIE_REG(PCIE_SEM2_LOCK), | 371 | done = netxen_nic_read_w0(adapter, |
372 | &done); | 372 | NETXEN_PCIE_REG(PCIE_SEM2_LOCK)); |
373 | if (done == 1) | 373 | if (done == 1) |
374 | break; | 374 | break; |
375 | if (timeout >= rom_lock_timeout) | 375 | if (timeout >= rom_lock_timeout) |
@@ -411,10 +411,8 @@ static int netxen_wait_rom_done(struct netxen_adapter *adapter) | |||
411 | 411 | ||
412 | static void netxen_rom_unlock(struct netxen_adapter *adapter) | 412 | static void netxen_rom_unlock(struct netxen_adapter *adapter) |
413 | { | 413 | { |
414 | u32 val; | ||
415 | |||
416 | /* release semaphore2 */ | 414 | /* release semaphore2 */ |
417 | netxen_nic_read_w0(adapter, NETXEN_PCIE_REG(PCIE_SEM2_UNLOCK), &val); | 415 | netxen_nic_read_w0(adapter, NETXEN_PCIE_REG(PCIE_SEM2_UNLOCK)); |
418 | 416 | ||
419 | } | 417 | } |
420 | 418 | ||
@@ -623,7 +621,7 @@ int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose) | |||
623 | } | 621 | } |
624 | } | 622 | } |
625 | 623 | ||
626 | adapter->hw_write_wx(adapter, off, &buf[i].data, 4); | 624 | adapter->hw_write_wx(adapter, off, buf[i].data); |
627 | 625 | ||
628 | msleep(init_delay); | 626 | msleep(init_delay); |
629 | } | 627 | } |
@@ -633,8 +631,8 @@ int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose) | |||
633 | 631 | ||
634 | /* unreset_net_cache */ | 632 | /* unreset_net_cache */ |
635 | if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) { | 633 | if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) { |
636 | adapter->hw_read_wx(adapter, | 634 | val = adapter->hw_read_wx(adapter, |
637 | NETXEN_ROMUSB_GLB_SW_RESET, &val, 4); | 635 | NETXEN_ROMUSB_GLB_SW_RESET); |
638 | netxen_crb_writelit_adapter(adapter, | 636 | netxen_crb_writelit_adapter(adapter, |
639 | NETXEN_ROMUSB_GLB_SW_RESET, (val & 0xffffff0f)); | 637 | NETXEN_ROMUSB_GLB_SW_RESET, (val & 0xffffff0f)); |
640 | } | 638 | } |
@@ -683,12 +681,12 @@ int netxen_initialize_adapter_offload(struct netxen_adapter *adapter) | |||
683 | hi = (addr >> 32) & 0xffffffff; | 681 | hi = (addr >> 32) & 0xffffffff; |
684 | lo = addr & 0xffffffff; | 682 | lo = addr & 0xffffffff; |
685 | 683 | ||
686 | adapter->pci_write_normalize(adapter, CRB_HOST_DUMMY_BUF_ADDR_HI, hi); | 684 | adapter->hw_write_wx(adapter, CRB_HOST_DUMMY_BUF_ADDR_HI, hi); |
687 | adapter->pci_write_normalize(adapter, CRB_HOST_DUMMY_BUF_ADDR_LO, lo); | 685 | adapter->hw_write_wx(adapter, CRB_HOST_DUMMY_BUF_ADDR_LO, lo); |
688 | 686 | ||
689 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { | 687 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { |
690 | uint32_t temp = 0; | 688 | uint32_t temp = 0; |
691 | adapter->hw_write_wx(adapter, CRB_HOST_DUMMY_BUF, &temp, 4); | 689 | adapter->hw_write_wx(adapter, CRB_HOST_DUMMY_BUF, temp); |
692 | } | 690 | } |
693 | 691 | ||
694 | return 0; | 692 | return 0; |
@@ -730,7 +728,7 @@ int netxen_phantom_init(struct netxen_adapter *adapter, int pegtune_val) | |||
730 | 728 | ||
731 | if (!pegtune_val) { | 729 | if (!pegtune_val) { |
732 | do { | 730 | do { |
733 | val = adapter->pci_read_normalize(adapter, | 731 | val = adapter->hw_read_wx(adapter, |
734 | CRB_CMDPEG_STATE); | 732 | CRB_CMDPEG_STATE); |
735 | 733 | ||
736 | if (val == PHAN_INITIALIZE_COMPLETE || | 734 | if (val == PHAN_INITIALIZE_COMPLETE || |
@@ -742,7 +740,7 @@ int netxen_phantom_init(struct netxen_adapter *adapter, int pegtune_val) | |||
742 | } while (--retries); | 740 | } while (--retries); |
743 | 741 | ||
744 | if (!retries) { | 742 | if (!retries) { |
745 | pegtune_val = adapter->pci_read_normalize(adapter, | 743 | pegtune_val = adapter->hw_read_wx(adapter, |
746 | NETXEN_ROMUSB_GLB_PEGTUNE_DONE); | 744 | NETXEN_ROMUSB_GLB_PEGTUNE_DONE); |
747 | printk(KERN_WARNING "netxen_phantom_init: init failed, " | 745 | printk(KERN_WARNING "netxen_phantom_init: init failed, " |
748 | "pegtune_val=%x\n", pegtune_val); | 746 | "pegtune_val=%x\n", pegtune_val); |
@@ -760,7 +758,7 @@ netxen_receive_peg_ready(struct netxen_adapter *adapter) | |||
760 | int retries = 2000; | 758 | int retries = 2000; |
761 | 759 | ||
762 | do { | 760 | do { |
763 | val = adapter->pci_read_normalize(adapter, CRB_RCVPEG_STATE); | 761 | val = adapter->hw_read_wx(adapter, CRB_RCVPEG_STATE); |
764 | 762 | ||
765 | if (val == PHAN_PEG_RCV_INITIALIZED) | 763 | if (val == PHAN_PEG_RCV_INITIALIZED) |
766 | return 0; | 764 | return 0; |
@@ -786,13 +784,13 @@ int netxen_init_firmware(struct netxen_adapter *adapter) | |||
786 | if (err) | 784 | if (err) |
787 | return err; | 785 | return err; |
788 | 786 | ||
789 | adapter->pci_write_normalize(adapter, | 787 | adapter->hw_write_wx(adapter, |
790 | CRB_NIC_CAPABILITIES_HOST, INTR_SCHEME_PERPORT); | 788 | CRB_NIC_CAPABILITIES_HOST, INTR_SCHEME_PERPORT); |
791 | adapter->pci_write_normalize(adapter, | 789 | adapter->hw_write_wx(adapter, |
792 | CRB_NIC_MSI_MODE_HOST, MSI_MODE_MULTIFUNC); | 790 | CRB_NIC_MSI_MODE_HOST, MSI_MODE_MULTIFUNC); |
793 | adapter->pci_write_normalize(adapter, | 791 | adapter->hw_write_wx(adapter, |
794 | CRB_MPORT_MODE, MPORT_MULTI_FUNCTION_MODE); | 792 | CRB_MPORT_MODE, MPORT_MULTI_FUNCTION_MODE); |
795 | adapter->pci_write_normalize(adapter, | 793 | adapter->hw_write_wx(adapter, |
796 | CRB_CMDPEG_STATE, PHAN_INITIALIZE_ACK); | 794 | CRB_CMDPEG_STATE, PHAN_INITIALIZE_ACK); |
797 | 795 | ||
798 | if (adapter->fw_version >= NETXEN_VERSION_CODE(4, 0, 222)) { | 796 | if (adapter->fw_version >= NETXEN_VERSION_CODE(4, 0, 222)) { |
@@ -1059,7 +1057,7 @@ skip: | |||
1059 | 1057 | ||
1060 | if (count) { | 1058 | if (count) { |
1061 | sds_ring->consumer = consumer; | 1059 | sds_ring->consumer = consumer; |
1062 | adapter->pci_write_normalize(adapter, | 1060 | adapter->hw_write_wx(adapter, |
1063 | sds_ring->crb_sts_consumer, consumer); | 1061 | sds_ring->crb_sts_consumer, consumer); |
1064 | } | 1062 | } |
1065 | 1063 | ||
@@ -1178,7 +1176,7 @@ netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ringid, | |||
1178 | 1176 | ||
1179 | if (count) { | 1177 | if (count) { |
1180 | rds_ring->producer = producer; | 1178 | rds_ring->producer = producer; |
1181 | adapter->pci_write_normalize(adapter, | 1179 | adapter->hw_write_wx(adapter, |
1182 | rds_ring->crb_rcv_producer, | 1180 | rds_ring->crb_rcv_producer, |
1183 | (producer-1) & (rds_ring->num_desc-1)); | 1181 | (producer-1) & (rds_ring->num_desc-1)); |
1184 | 1182 | ||
@@ -1239,7 +1237,7 @@ netxen_post_rx_buffers_nodb(struct netxen_adapter *adapter, | |||
1239 | 1237 | ||
1240 | if (count) { | 1238 | if (count) { |
1241 | rds_ring->producer = producer; | 1239 | rds_ring->producer = producer; |
1242 | adapter->pci_write_normalize(adapter, | 1240 | adapter->hw_write_wx(adapter, |
1243 | rds_ring->crb_rcv_producer, | 1241 | rds_ring->crb_rcv_producer, |
1244 | (producer - 1) & (rds_ring->num_desc - 1)); | 1242 | (producer - 1) & (rds_ring->num_desc - 1)); |
1245 | wmb(); | 1243 | wmb(); |
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index cbd47ae694ba..31966a044900 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c | |||
@@ -109,7 +109,7 @@ void | |||
109 | netxen_nic_update_cmd_producer(struct netxen_adapter *adapter, | 109 | netxen_nic_update_cmd_producer(struct netxen_adapter *adapter, |
110 | struct nx_host_tx_ring *tx_ring, u32 producer) | 110 | struct nx_host_tx_ring *tx_ring, u32 producer) |
111 | { | 111 | { |
112 | adapter->pci_write_normalize(adapter, | 112 | adapter->hw_write_wx(adapter, |
113 | tx_ring->crb_cmd_producer, producer); | 113 | tx_ring->crb_cmd_producer, producer); |
114 | } | 114 | } |
115 | 115 | ||
@@ -122,7 +122,7 @@ static inline void | |||
122 | netxen_nic_update_cmd_consumer(struct netxen_adapter *adapter, | 122 | netxen_nic_update_cmd_consumer(struct netxen_adapter *adapter, |
123 | struct nx_host_tx_ring *tx_ring, u32 consumer) | 123 | struct nx_host_tx_ring *tx_ring, u32 consumer) |
124 | { | 124 | { |
125 | adapter->pci_write_normalize(adapter, | 125 | adapter->hw_write_wx(adapter, |
126 | tx_ring->crb_cmd_consumer, consumer); | 126 | tx_ring->crb_cmd_consumer, consumer); |
127 | } | 127 | } |
128 | 128 | ||
@@ -139,14 +139,14 @@ static inline void netxen_nic_disable_int(struct nx_host_sds_ring *sds_ring) | |||
139 | { | 139 | { |
140 | struct netxen_adapter *adapter = sds_ring->adapter; | 140 | struct netxen_adapter *adapter = sds_ring->adapter; |
141 | 141 | ||
142 | adapter->pci_write_normalize(adapter, sds_ring->crb_intr_mask, 0); | 142 | adapter->hw_write_wx(adapter, sds_ring->crb_intr_mask, 0); |
143 | } | 143 | } |
144 | 144 | ||
145 | static inline void netxen_nic_enable_int(struct nx_host_sds_ring *sds_ring) | 145 | static inline void netxen_nic_enable_int(struct nx_host_sds_ring *sds_ring) |
146 | { | 146 | { |
147 | struct netxen_adapter *adapter = sds_ring->adapter; | 147 | struct netxen_adapter *adapter = sds_ring->adapter; |
148 | 148 | ||
149 | adapter->pci_write_normalize(adapter, sds_ring->crb_intr_mask, 0x1); | 149 | adapter->hw_write_wx(adapter, sds_ring->crb_intr_mask, 0x1); |
150 | 150 | ||
151 | if (!NETXEN_IS_MSI_FAMILY(adapter)) | 151 | if (!NETXEN_IS_MSI_FAMILY(adapter)) |
152 | adapter->pci_write_immediate(adapter, | 152 | adapter->pci_write_immediate(adapter, |
@@ -309,42 +309,41 @@ netxen_check_hw_init(struct netxen_adapter *adapter, int first_boot) | |||
309 | 309 | ||
310 | if (first_boot == 0x55555555) { | 310 | if (first_boot == 0x55555555) { |
311 | /* This is the first boot after power up */ | 311 | /* This is the first boot after power up */ |
312 | adapter->pci_write_normalize(adapter, | 312 | adapter->hw_write_wx(adapter, |
313 | NETXEN_CAM_RAM(0x1fc), NETXEN_BDINFO_MAGIC); | 313 | NETXEN_CAM_RAM(0x1fc), NETXEN_BDINFO_MAGIC); |
314 | 314 | ||
315 | if (!NX_IS_REVISION_P2(adapter->ahw.revision_id)) | 315 | if (!NX_IS_REVISION_P2(adapter->ahw.revision_id)) |
316 | return 0; | 316 | return 0; |
317 | 317 | ||
318 | /* PCI bus master workaround */ | 318 | /* PCI bus master workaround */ |
319 | adapter->hw_read_wx(adapter, | 319 | first_boot = adapter->hw_read_wx(adapter, NETXEN_PCIE_REG(0x4)); |
320 | NETXEN_PCIE_REG(0x4), &first_boot, 4); | ||
321 | if (!(first_boot & 0x4)) { | 320 | if (!(first_boot & 0x4)) { |
322 | first_boot |= 0x4; | 321 | first_boot |= 0x4; |
323 | adapter->hw_write_wx(adapter, | 322 | adapter->hw_write_wx(adapter, |
324 | NETXEN_PCIE_REG(0x4), &first_boot, 4); | 323 | NETXEN_PCIE_REG(0x4), first_boot); |
325 | adapter->hw_read_wx(adapter, | 324 | first_boot = adapter->hw_read_wx(adapter, |
326 | NETXEN_PCIE_REG(0x4), &first_boot, 4); | 325 | NETXEN_PCIE_REG(0x4)); |
327 | } | 326 | } |
328 | 327 | ||
329 | /* This is the first boot after power up */ | 328 | /* This is the first boot after power up */ |
330 | adapter->hw_read_wx(adapter, | 329 | first_boot = adapter->hw_read_wx(adapter, |
331 | NETXEN_ROMUSB_GLB_SW_RESET, &first_boot, 4); | 330 | NETXEN_ROMUSB_GLB_SW_RESET); |
332 | if (first_boot != 0x80000f) { | 331 | if (first_boot != 0x80000f) { |
333 | /* clear the register for future unloads/loads */ | 332 | /* clear the register for future unloads/loads */ |
334 | adapter->pci_write_normalize(adapter, | 333 | adapter->hw_write_wx(adapter, |
335 | NETXEN_CAM_RAM(0x1fc), 0); | 334 | NETXEN_CAM_RAM(0x1fc), 0); |
336 | return -EIO; | 335 | return -EIO; |
337 | } | 336 | } |
338 | 337 | ||
339 | /* Start P2 boot loader */ | 338 | /* Start P2 boot loader */ |
340 | val = adapter->pci_read_normalize(adapter, | 339 | val = adapter->hw_read_wx(adapter, |
341 | NETXEN_ROMUSB_GLB_PEGTUNE_DONE); | 340 | NETXEN_ROMUSB_GLB_PEGTUNE_DONE); |
342 | adapter->pci_write_normalize(adapter, | 341 | adapter->hw_write_wx(adapter, |
343 | NETXEN_ROMUSB_GLB_PEGTUNE_DONE, val | 0x1); | 342 | NETXEN_ROMUSB_GLB_PEGTUNE_DONE, val | 0x1); |
344 | timeout = 0; | 343 | timeout = 0; |
345 | do { | 344 | do { |
346 | msleep(1); | 345 | msleep(1); |
347 | val = adapter->pci_read_normalize(adapter, | 346 | val = adapter->hw_read_wx(adapter, |
348 | NETXEN_CAM_RAM(0x1fc)); | 347 | NETXEN_CAM_RAM(0x1fc)); |
349 | 348 | ||
350 | if (++timeout > 5000) | 349 | if (++timeout > 5000) |
@@ -365,23 +364,23 @@ static void netxen_set_port_mode(struct netxen_adapter *adapter) | |||
365 | if (port_mode == NETXEN_PORT_MODE_802_3_AP) { | 364 | if (port_mode == NETXEN_PORT_MODE_802_3_AP) { |
366 | data = NETXEN_PORT_MODE_802_3_AP; | 365 | data = NETXEN_PORT_MODE_802_3_AP; |
367 | adapter->hw_write_wx(adapter, | 366 | adapter->hw_write_wx(adapter, |
368 | NETXEN_PORT_MODE_ADDR, &data, 4); | 367 | NETXEN_PORT_MODE_ADDR, data); |
369 | } else if (port_mode == NETXEN_PORT_MODE_XG) { | 368 | } else if (port_mode == NETXEN_PORT_MODE_XG) { |
370 | data = NETXEN_PORT_MODE_XG; | 369 | data = NETXEN_PORT_MODE_XG; |
371 | adapter->hw_write_wx(adapter, | 370 | adapter->hw_write_wx(adapter, |
372 | NETXEN_PORT_MODE_ADDR, &data, 4); | 371 | NETXEN_PORT_MODE_ADDR, data); |
373 | } else if (port_mode == NETXEN_PORT_MODE_AUTO_NEG_1G) { | 372 | } else if (port_mode == NETXEN_PORT_MODE_AUTO_NEG_1G) { |
374 | data = NETXEN_PORT_MODE_AUTO_NEG_1G; | 373 | data = NETXEN_PORT_MODE_AUTO_NEG_1G; |
375 | adapter->hw_write_wx(adapter, | 374 | adapter->hw_write_wx(adapter, |
376 | NETXEN_PORT_MODE_ADDR, &data, 4); | 375 | NETXEN_PORT_MODE_ADDR, data); |
377 | } else if (port_mode == NETXEN_PORT_MODE_AUTO_NEG_XG) { | 376 | } else if (port_mode == NETXEN_PORT_MODE_AUTO_NEG_XG) { |
378 | data = NETXEN_PORT_MODE_AUTO_NEG_XG; | 377 | data = NETXEN_PORT_MODE_AUTO_NEG_XG; |
379 | adapter->hw_write_wx(adapter, | 378 | adapter->hw_write_wx(adapter, |
380 | NETXEN_PORT_MODE_ADDR, &data, 4); | 379 | NETXEN_PORT_MODE_ADDR, data); |
381 | } else { | 380 | } else { |
382 | data = NETXEN_PORT_MODE_AUTO_NEG; | 381 | data = NETXEN_PORT_MODE_AUTO_NEG; |
383 | adapter->hw_write_wx(adapter, | 382 | adapter->hw_write_wx(adapter, |
384 | NETXEN_PORT_MODE_ADDR, &data, 4); | 383 | NETXEN_PORT_MODE_ADDR, data); |
385 | } | 384 | } |
386 | 385 | ||
387 | if ((wol_port_mode != NETXEN_PORT_MODE_802_3_AP) && | 386 | if ((wol_port_mode != NETXEN_PORT_MODE_802_3_AP) && |
@@ -391,7 +390,7 @@ static void netxen_set_port_mode(struct netxen_adapter *adapter) | |||
391 | wol_port_mode = NETXEN_PORT_MODE_AUTO_NEG; | 390 | wol_port_mode = NETXEN_PORT_MODE_AUTO_NEG; |
392 | } | 391 | } |
393 | adapter->hw_write_wx(adapter, NETXEN_WOL_PORT_MODE, | 392 | adapter->hw_write_wx(adapter, NETXEN_WOL_PORT_MODE, |
394 | &wol_port_mode, 4); | 393 | wol_port_mode); |
395 | } | 394 | } |
396 | } | 395 | } |
397 | 396 | ||
@@ -572,8 +571,6 @@ netxen_setup_pci_map(struct netxen_adapter *adapter) | |||
572 | adapter->hw_read_wx = netxen_nic_hw_read_wx_128M; | 571 | adapter->hw_read_wx = netxen_nic_hw_read_wx_128M; |
573 | adapter->pci_read_immediate = netxen_nic_pci_read_immediate_128M; | 572 | adapter->pci_read_immediate = netxen_nic_pci_read_immediate_128M; |
574 | adapter->pci_write_immediate = netxen_nic_pci_write_immediate_128M; | 573 | adapter->pci_write_immediate = netxen_nic_pci_write_immediate_128M; |
575 | adapter->pci_read_normalize = netxen_nic_pci_read_normalize_128M; | ||
576 | adapter->pci_write_normalize = netxen_nic_pci_write_normalize_128M; | ||
577 | adapter->pci_set_window = netxen_nic_pci_set_window_128M; | 574 | adapter->pci_set_window = netxen_nic_pci_set_window_128M; |
578 | adapter->pci_mem_read = netxen_nic_pci_mem_read_128M; | 575 | adapter->pci_mem_read = netxen_nic_pci_mem_read_128M; |
579 | adapter->pci_mem_write = netxen_nic_pci_mem_write_128M; | 576 | adapter->pci_mem_write = netxen_nic_pci_mem_write_128M; |
@@ -595,9 +592,6 @@ netxen_setup_pci_map(struct netxen_adapter *adapter) | |||
595 | adapter->pci_read_immediate = netxen_nic_pci_read_immediate_2M; | 592 | adapter->pci_read_immediate = netxen_nic_pci_read_immediate_2M; |
596 | adapter->pci_write_immediate = | 593 | adapter->pci_write_immediate = |
597 | netxen_nic_pci_write_immediate_2M; | 594 | netxen_nic_pci_write_immediate_2M; |
598 | adapter->pci_read_normalize = netxen_nic_pci_read_normalize_2M; | ||
599 | adapter->pci_write_normalize = | ||
600 | netxen_nic_pci_write_normalize_2M; | ||
601 | adapter->pci_set_window = netxen_nic_pci_set_window_2M; | 595 | adapter->pci_set_window = netxen_nic_pci_set_window_2M; |
602 | adapter->pci_mem_read = netxen_nic_pci_mem_read_2M; | 596 | adapter->pci_mem_read = netxen_nic_pci_mem_read_2M; |
603 | adapter->pci_mem_write = netxen_nic_pci_mem_write_2M; | 597 | adapter->pci_mem_write = netxen_nic_pci_mem_write_2M; |
@@ -680,7 +674,7 @@ netxen_start_firmware(struct netxen_adapter *adapter) | |||
680 | if (!first_driver) | 674 | if (!first_driver) |
681 | return 0; | 675 | return 0; |
682 | 676 | ||
683 | first_boot = adapter->pci_read_normalize(adapter, | 677 | first_boot = adapter->hw_read_wx(adapter, |
684 | NETXEN_CAM_RAM(0x1fc)); | 678 | NETXEN_CAM_RAM(0x1fc)); |
685 | 679 | ||
686 | err = netxen_check_hw_init(adapter, first_boot); | 680 | err = netxen_check_hw_init(adapter, first_boot); |
@@ -690,7 +684,7 @@ netxen_start_firmware(struct netxen_adapter *adapter) | |||
690 | } | 684 | } |
691 | 685 | ||
692 | if (first_boot != 0x55555555) { | 686 | if (first_boot != 0x55555555) { |
693 | adapter->pci_write_normalize(adapter, | 687 | adapter->hw_write_wx(adapter, |
694 | CRB_CMDPEG_STATE, 0); | 688 | CRB_CMDPEG_STATE, 0); |
695 | netxen_pinit_from_rom(adapter, 0); | 689 | netxen_pinit_from_rom(adapter, 0); |
696 | msleep(1); | 690 | msleep(1); |
@@ -723,7 +717,7 @@ netxen_start_firmware(struct netxen_adapter *adapter) | |||
723 | val = (_NETXEN_NIC_LINUX_MAJOR << 16) | 717 | val = (_NETXEN_NIC_LINUX_MAJOR << 16) |
724 | | ((_NETXEN_NIC_LINUX_MINOR << 8)) | 718 | | ((_NETXEN_NIC_LINUX_MINOR << 8)) |
725 | | (_NETXEN_NIC_LINUX_SUBVERSION); | 719 | | (_NETXEN_NIC_LINUX_SUBVERSION); |
726 | adapter->pci_write_normalize(adapter, CRB_DRIVER_VERSION, val); | 720 | adapter->hw_write_wx(adapter, CRB_DRIVER_VERSION, val); |
727 | 721 | ||
728 | /* Handshake with the card before we register the devices. */ | 722 | /* Handshake with the card before we register the devices. */ |
729 | err = netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE); | 723 | err = netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE); |
@@ -1038,7 +1032,7 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1038 | */ | 1032 | */ |
1039 | adapter->physical_port = adapter->portnum; | 1033 | adapter->physical_port = adapter->portnum; |
1040 | if (adapter->fw_major < 4) { | 1034 | if (adapter->fw_major < 4) { |
1041 | i = adapter->pci_read_normalize(adapter, | 1035 | i = adapter->hw_read_wx(adapter, |
1042 | CRB_V2P(adapter->portnum)); | 1036 | CRB_V2P(adapter->portnum)); |
1043 | if (i != 0x55555555) | 1037 | if (i != 0x55555555) |
1044 | adapter->physical_port = i; | 1038 | adapter->physical_port = i; |
@@ -1486,7 +1480,7 @@ static int netxen_nic_check_temp(struct netxen_adapter *adapter) | |||
1486 | uint32_t temp, temp_state, temp_val; | 1480 | uint32_t temp, temp_state, temp_val; |
1487 | int rv = 0; | 1481 | int rv = 0; |
1488 | 1482 | ||
1489 | temp = adapter->pci_read_normalize(adapter, CRB_TEMP_STATE); | 1483 | temp = adapter->hw_read_wx(adapter, CRB_TEMP_STATE); |
1490 | 1484 | ||
1491 | temp_state = nx_get_temp_state(temp); | 1485 | temp_state = nx_get_temp_state(temp); |
1492 | temp_val = nx_get_temp_val(temp); | 1486 | temp_val = nx_get_temp_val(temp); |
@@ -1557,11 +1551,11 @@ static void netxen_nic_handle_phy_intr(struct netxen_adapter *adapter) | |||
1557 | port = adapter->physical_port; | 1551 | port = adapter->physical_port; |
1558 | 1552 | ||
1559 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { | 1553 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { |
1560 | val = adapter->pci_read_normalize(adapter, CRB_XG_STATE_P3); | 1554 | val = adapter->hw_read_wx(adapter, CRB_XG_STATE_P3); |
1561 | val = XG_LINK_STATE_P3(adapter->ahw.pci_func, val); | 1555 | val = XG_LINK_STATE_P3(adapter->ahw.pci_func, val); |
1562 | linkup = (val == XG_LINK_UP_P3); | 1556 | linkup = (val == XG_LINK_UP_P3); |
1563 | } else { | 1557 | } else { |
1564 | val = adapter->pci_read_normalize(adapter, CRB_XG_STATE); | 1558 | val = adapter->hw_read_wx(adapter, CRB_XG_STATE); |
1565 | if (adapter->ahw.port_type == NETXEN_NIC_GBE) | 1559 | if (adapter->ahw.port_type == NETXEN_NIC_GBE) |
1566 | linkup = (val >> port) & 1; | 1560 | linkup = (val >> port) & 1; |
1567 | else { | 1561 | else { |
@@ -1656,14 +1650,14 @@ static irqreturn_t netxen_intr(int irq, void *data) | |||
1656 | } else { | 1650 | } else { |
1657 | unsigned long our_int = 0; | 1651 | unsigned long our_int = 0; |
1658 | 1652 | ||
1659 | our_int = adapter->pci_read_normalize(adapter, CRB_INT_VECTOR); | 1653 | our_int = adapter->hw_read_wx(adapter, CRB_INT_VECTOR); |
1660 | 1654 | ||
1661 | /* not our interrupt */ | 1655 | /* not our interrupt */ |
1662 | if (!test_and_clear_bit((7 + adapter->portnum), &our_int)) | 1656 | if (!test_and_clear_bit((7 + adapter->portnum), &our_int)) |
1663 | return IRQ_NONE; | 1657 | return IRQ_NONE; |
1664 | 1658 | ||
1665 | /* claim interrupt */ | 1659 | /* claim interrupt */ |
1666 | adapter->pci_write_normalize(adapter, | 1660 | adapter->hw_write_wx(adapter, |
1667 | CRB_INT_VECTOR, (our_int & 0xffffffff)); | 1661 | CRB_INT_VECTOR, (our_int & 0xffffffff)); |
1668 | } | 1662 | } |
1669 | 1663 | ||
diff --git a/drivers/net/netxen/netxen_nic_niu.c b/drivers/net/netxen/netxen_nic_niu.c index 3310471ba1a0..b54a63a64e7b 100644 --- a/drivers/net/netxen/netxen_nic_niu.c +++ b/drivers/net/netxen/netxen_nic_niu.c | |||
@@ -105,9 +105,7 @@ int netxen_niu_gbe_phy_read(struct netxen_adapter *adapter, long reg, | |||
105 | * so it cannot be in reset | 105 | * so it cannot be in reset |
106 | */ | 106 | */ |
107 | 107 | ||
108 | if (adapter->hw_read_wx(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(0), | 108 | mac_cfg0 = adapter->hw_read_wx(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(0)); |
109 | &mac_cfg0, 4)) | ||
110 | return -EIO; | ||
111 | if (netxen_gb_get_soft_reset(mac_cfg0)) { | 109 | if (netxen_gb_get_soft_reset(mac_cfg0)) { |
112 | __u32 temp; | 110 | __u32 temp; |
113 | temp = 0; | 111 | temp = 0; |
@@ -116,8 +114,7 @@ int netxen_niu_gbe_phy_read(struct netxen_adapter *adapter, long reg, | |||
116 | netxen_gb_tx_reset_mac(temp); | 114 | netxen_gb_tx_reset_mac(temp); |
117 | netxen_gb_rx_reset_mac(temp); | 115 | netxen_gb_rx_reset_mac(temp); |
118 | if (adapter->hw_write_wx(adapter, | 116 | if (adapter->hw_write_wx(adapter, |
119 | NETXEN_NIU_GB_MAC_CONFIG_0(0), | 117 | NETXEN_NIU_GB_MAC_CONFIG_0(0), temp)) |
120 | &temp, 4)) | ||
121 | return -EIO; | 118 | return -EIO; |
122 | restore = 1; | 119 | restore = 1; |
123 | } | 120 | } |
@@ -125,43 +122,38 @@ int netxen_niu_gbe_phy_read(struct netxen_adapter *adapter, long reg, | |||
125 | address = 0; | 122 | address = 0; |
126 | netxen_gb_mii_mgmt_reg_addr(address, reg); | 123 | netxen_gb_mii_mgmt_reg_addr(address, reg); |
127 | netxen_gb_mii_mgmt_phy_addr(address, phy); | 124 | netxen_gb_mii_mgmt_phy_addr(address, phy); |
128 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_GB_MII_MGMT_ADDR(0), | 125 | if (adapter->hw_write_wx(adapter, |
129 | &address, 4)) | 126 | NETXEN_NIU_GB_MII_MGMT_ADDR(0), address)) |
130 | return -EIO; | 127 | return -EIO; |
131 | command = 0; /* turn off any prior activity */ | 128 | command = 0; /* turn off any prior activity */ |
132 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_GB_MII_MGMT_COMMAND(0), | 129 | if (adapter->hw_write_wx(adapter, |
133 | &command, 4)) | 130 | NETXEN_NIU_GB_MII_MGMT_COMMAND(0), command)) |
134 | return -EIO; | 131 | return -EIO; |
135 | /* send read command */ | 132 | /* send read command */ |
136 | netxen_gb_mii_mgmt_set_read_cycle(command); | 133 | netxen_gb_mii_mgmt_set_read_cycle(command); |
137 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_GB_MII_MGMT_COMMAND(0), | 134 | if (adapter->hw_write_wx(adapter, |
138 | &command, 4)) | 135 | NETXEN_NIU_GB_MII_MGMT_COMMAND(0), command)) |
139 | return -EIO; | 136 | return -EIO; |
140 | 137 | ||
141 | status = 0; | 138 | status = 0; |
142 | do { | 139 | do { |
143 | if (adapter->hw_read_wx(adapter, | 140 | status = adapter->hw_read_wx(adapter, |
144 | NETXEN_NIU_GB_MII_MGMT_INDICATE(0), | 141 | NETXEN_NIU_GB_MII_MGMT_INDICATE(0)); |
145 | &status, 4)) | ||
146 | return -EIO; | ||
147 | timeout++; | 142 | timeout++; |
148 | } while ((netxen_get_gb_mii_mgmt_busy(status) | 143 | } while ((netxen_get_gb_mii_mgmt_busy(status) |
149 | || netxen_get_gb_mii_mgmt_notvalid(status)) | 144 | || netxen_get_gb_mii_mgmt_notvalid(status)) |
150 | && (timeout++ < NETXEN_NIU_PHY_WAITMAX)); | 145 | && (timeout++ < NETXEN_NIU_PHY_WAITMAX)); |
151 | 146 | ||
152 | if (timeout < NETXEN_NIU_PHY_WAITMAX) { | 147 | if (timeout < NETXEN_NIU_PHY_WAITMAX) { |
153 | if (adapter->hw_read_wx(adapter, | 148 | *readval = adapter->hw_read_wx(adapter, |
154 | NETXEN_NIU_GB_MII_MGMT_STATUS(0), | 149 | NETXEN_NIU_GB_MII_MGMT_STATUS(0)); |
155 | readval, 4)) | ||
156 | return -EIO; | ||
157 | result = 0; | 150 | result = 0; |
158 | } else | 151 | } else |
159 | result = -1; | 152 | result = -1; |
160 | 153 | ||
161 | if (restore) | 154 | if (restore) |
162 | if (adapter->hw_write_wx(adapter, | 155 | if (adapter->hw_write_wx(adapter, |
163 | NETXEN_NIU_GB_MAC_CONFIG_0(0), | 156 | NETXEN_NIU_GB_MAC_CONFIG_0(0), mac_cfg0)) |
164 | &mac_cfg0, 4)) | ||
165 | return -EIO; | 157 | return -EIO; |
166 | phy_unlock(adapter); | 158 | phy_unlock(adapter); |
167 | return result; | 159 | return result; |
@@ -197,9 +189,7 @@ int netxen_niu_gbe_phy_write(struct netxen_adapter *adapter, long reg, | |||
197 | * cannot be in reset | 189 | * cannot be in reset |
198 | */ | 190 | */ |
199 | 191 | ||
200 | if (adapter->hw_read_wx(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(0), | 192 | mac_cfg0 = adapter->hw_read_wx(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(0)); |
201 | &mac_cfg0, 4)) | ||
202 | return -EIO; | ||
203 | if (netxen_gb_get_soft_reset(mac_cfg0)) { | 193 | if (netxen_gb_get_soft_reset(mac_cfg0)) { |
204 | __u32 temp; | 194 | __u32 temp; |
205 | temp = 0; | 195 | temp = 0; |
@@ -209,34 +199,31 @@ int netxen_niu_gbe_phy_write(struct netxen_adapter *adapter, long reg, | |||
209 | netxen_gb_rx_reset_mac(temp); | 199 | netxen_gb_rx_reset_mac(temp); |
210 | 200 | ||
211 | if (adapter->hw_write_wx(adapter, | 201 | if (adapter->hw_write_wx(adapter, |
212 | NETXEN_NIU_GB_MAC_CONFIG_0(0), | 202 | NETXEN_NIU_GB_MAC_CONFIG_0(0), temp)) |
213 | &temp, 4)) | ||
214 | return -EIO; | 203 | return -EIO; |
215 | restore = 1; | 204 | restore = 1; |
216 | } | 205 | } |
217 | 206 | ||
218 | command = 0; /* turn off any prior activity */ | 207 | command = 0; /* turn off any prior activity */ |
219 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_GB_MII_MGMT_COMMAND(0), | 208 | if (adapter->hw_write_wx(adapter, |
220 | &command, 4)) | 209 | NETXEN_NIU_GB_MII_MGMT_COMMAND(0), command)) |
221 | return -EIO; | 210 | return -EIO; |
222 | 211 | ||
223 | address = 0; | 212 | address = 0; |
224 | netxen_gb_mii_mgmt_reg_addr(address, reg); | 213 | netxen_gb_mii_mgmt_reg_addr(address, reg); |
225 | netxen_gb_mii_mgmt_phy_addr(address, phy); | 214 | netxen_gb_mii_mgmt_phy_addr(address, phy); |
226 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_GB_MII_MGMT_ADDR(0), | 215 | if (adapter->hw_write_wx(adapter, |
227 | &address, 4)) | 216 | NETXEN_NIU_GB_MII_MGMT_ADDR(0), address)) |
228 | return -EIO; | 217 | return -EIO; |
229 | 218 | ||
230 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_GB_MII_MGMT_CTRL(0), | 219 | if (adapter->hw_write_wx(adapter, |
231 | &val, 4)) | 220 | NETXEN_NIU_GB_MII_MGMT_CTRL(0), val)) |
232 | return -EIO; | 221 | return -EIO; |
233 | 222 | ||
234 | status = 0; | 223 | status = 0; |
235 | do { | 224 | do { |
236 | if (adapter->hw_read_wx(adapter, | 225 | status = adapter->hw_read_wx(adapter, |
237 | NETXEN_NIU_GB_MII_MGMT_INDICATE(0), | 226 | NETXEN_NIU_GB_MII_MGMT_INDICATE(0)); |
238 | &status, 4)) | ||
239 | return -EIO; | ||
240 | timeout++; | 227 | timeout++; |
241 | } while ((netxen_get_gb_mii_mgmt_busy(status)) | 228 | } while ((netxen_get_gb_mii_mgmt_busy(status)) |
242 | && (timeout++ < NETXEN_NIU_PHY_WAITMAX)); | 229 | && (timeout++ < NETXEN_NIU_PHY_WAITMAX)); |
@@ -249,8 +236,7 @@ int netxen_niu_gbe_phy_write(struct netxen_adapter *adapter, long reg, | |||
249 | /* restore the state of port 0 MAC in case we tampered with it */ | 236 | /* restore the state of port 0 MAC in case we tampered with it */ |
250 | if (restore) | 237 | if (restore) |
251 | if (adapter->hw_write_wx(adapter, | 238 | if (adapter->hw_write_wx(adapter, |
252 | NETXEN_NIU_GB_MAC_CONFIG_0(0), | 239 | NETXEN_NIU_GB_MAC_CONFIG_0(0), mac_cfg0)) |
253 | &mac_cfg0, 4)) | ||
254 | return -EIO; | 240 | return -EIO; |
255 | 241 | ||
256 | return result; | 242 | return result; |
@@ -473,12 +459,10 @@ static int netxen_niu_macaddr_get(struct netxen_adapter *adapter, | |||
473 | if ((phy < 0) || (phy > 3)) | 459 | if ((phy < 0) || (phy > 3)) |
474 | return -EINVAL; | 460 | return -EINVAL; |
475 | 461 | ||
476 | if (adapter->hw_read_wx(adapter, NETXEN_NIU_GB_STATION_ADDR_0(phy), | 462 | stationhigh = adapter->hw_read_wx(adapter, |
477 | &stationhigh, 4)) | 463 | NETXEN_NIU_GB_STATION_ADDR_0(phy)); |
478 | return -EIO; | 464 | stationlow = adapter->hw_read_wx(adapter, |
479 | if (adapter->hw_read_wx(adapter, NETXEN_NIU_GB_STATION_ADDR_1(phy), | 465 | NETXEN_NIU_GB_STATION_ADDR_1(phy)); |
480 | &stationlow, 4)) | ||
481 | return -EIO; | ||
482 | ((__le32 *)val)[1] = cpu_to_le32(stationhigh); | 466 | ((__le32 *)val)[1] = cpu_to_le32(stationhigh); |
483 | ((__le32 *)val)[0] = cpu_to_le32(stationlow); | 467 | ((__le32 *)val)[0] = cpu_to_le32(stationlow); |
484 | 468 | ||
@@ -508,13 +492,13 @@ int netxen_niu_macaddr_set(struct netxen_adapter *adapter, | |||
508 | memcpy(temp + 2, addr, 2); | 492 | memcpy(temp + 2, addr, 2); |
509 | val = le32_to_cpu(*(__le32 *)temp); | 493 | val = le32_to_cpu(*(__le32 *)temp); |
510 | if (adapter->hw_write_wx(adapter, | 494 | if (adapter->hw_write_wx(adapter, |
511 | NETXEN_NIU_GB_STATION_ADDR_1(phy), &val, 4)) | 495 | NETXEN_NIU_GB_STATION_ADDR_1(phy), val)) |
512 | return -EIO; | 496 | return -EIO; |
513 | 497 | ||
514 | memcpy(temp, ((u8 *) addr) + 2, sizeof(__le32)); | 498 | memcpy(temp, ((u8 *) addr) + 2, sizeof(__le32)); |
515 | val = le32_to_cpu(*(__le32 *)temp); | 499 | val = le32_to_cpu(*(__le32 *)temp); |
516 | if (adapter->hw_write_wx(adapter, | 500 | if (adapter->hw_write_wx(adapter, |
517 | NETXEN_NIU_GB_STATION_ADDR_0(phy), &val, 4)) | 501 | NETXEN_NIU_GB_STATION_ADDR_0(phy), val)) |
518 | return -2; | 502 | return -2; |
519 | 503 | ||
520 | netxen_niu_macaddr_get(adapter, | 504 | netxen_niu_macaddr_get(adapter, |
@@ -545,8 +529,8 @@ int netxen_niu_disable_gbe_port(struct netxen_adapter *adapter) | |||
545 | return -EINVAL; | 529 | return -EINVAL; |
546 | mac_cfg0 = 0; | 530 | mac_cfg0 = 0; |
547 | netxen_gb_soft_reset(mac_cfg0); | 531 | netxen_gb_soft_reset(mac_cfg0); |
548 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(port), | 532 | if (adapter->hw_write_wx(adapter, |
549 | &mac_cfg0, 4)) | 533 | NETXEN_NIU_GB_MAC_CONFIG_0(port), mac_cfg0)) |
550 | return -EIO; | 534 | return -EIO; |
551 | return 0; | 535 | return 0; |
552 | } | 536 | } |
@@ -565,7 +549,7 @@ int netxen_niu_disable_xg_port(struct netxen_adapter *adapter) | |||
565 | 549 | ||
566 | mac_cfg = 0; | 550 | mac_cfg = 0; |
567 | if (adapter->hw_write_wx(adapter, | 551 | if (adapter->hw_write_wx(adapter, |
568 | NETXEN_NIU_XGE_CONFIG_0 + (0x10000 * port), &mac_cfg, 4)) | 552 | NETXEN_NIU_XGE_CONFIG_0 + (0x10000 * port), mac_cfg)) |
569 | return -EIO; | 553 | return -EIO; |
570 | return 0; | 554 | return 0; |
571 | } | 555 | } |
@@ -581,9 +565,7 @@ int netxen_niu_set_promiscuous_mode(struct netxen_adapter *adapter, | |||
581 | return -EINVAL; | 565 | return -EINVAL; |
582 | 566 | ||
583 | /* save previous contents */ | 567 | /* save previous contents */ |
584 | if (adapter->hw_read_wx(adapter, NETXEN_NIU_GB_DROP_WRONGADDR, | 568 | reg = adapter->hw_read_wx(adapter, NETXEN_NIU_GB_DROP_WRONGADDR); |
585 | ®, 4)) | ||
586 | return -EIO; | ||
587 | if (mode == NETXEN_NIU_PROMISC_MODE) { | 569 | if (mode == NETXEN_NIU_PROMISC_MODE) { |
588 | switch (port) { | 570 | switch (port) { |
589 | case 0: | 571 | case 0: |
@@ -619,8 +601,7 @@ int netxen_niu_set_promiscuous_mode(struct netxen_adapter *adapter, | |||
619 | return -EIO; | 601 | return -EIO; |
620 | } | 602 | } |
621 | } | 603 | } |
622 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_GB_DROP_WRONGADDR, | 604 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_GB_DROP_WRONGADDR, reg)) |
623 | ®, 4)) | ||
624 | return -EIO; | 605 | return -EIO; |
625 | return 0; | 606 | return 0; |
626 | } | 607 | } |
@@ -647,28 +628,28 @@ int netxen_niu_xg_macaddr_set(struct netxen_adapter *adapter, | |||
647 | case 0: | 628 | case 0: |
648 | memcpy(temp + 2, addr, 2); | 629 | memcpy(temp + 2, addr, 2); |
649 | val = le32_to_cpu(*(__le32 *)temp); | 630 | val = le32_to_cpu(*(__le32 *)temp); |
650 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_XGE_STATION_ADDR_0_1, | 631 | if (adapter->hw_write_wx(adapter, |
651 | &val, 4)) | 632 | NETXEN_NIU_XGE_STATION_ADDR_0_1, val)) |
652 | return -EIO; | 633 | return -EIO; |
653 | 634 | ||
654 | memcpy(&temp, ((u8 *) addr) + 2, sizeof(__le32)); | 635 | memcpy(&temp, ((u8 *) addr) + 2, sizeof(__le32)); |
655 | val = le32_to_cpu(*(__le32 *)temp); | 636 | val = le32_to_cpu(*(__le32 *)temp); |
656 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_XGE_STATION_ADDR_0_HI, | 637 | if (adapter->hw_write_wx(adapter, |
657 | &val, 4)) | 638 | NETXEN_NIU_XGE_STATION_ADDR_0_HI, val)) |
658 | return -EIO; | 639 | return -EIO; |
659 | break; | 640 | break; |
660 | 641 | ||
661 | case 1: | 642 | case 1: |
662 | memcpy(temp + 2, addr, 2); | 643 | memcpy(temp + 2, addr, 2); |
663 | val = le32_to_cpu(*(__le32 *)temp); | 644 | val = le32_to_cpu(*(__le32 *)temp); |
664 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_XG1_STATION_ADDR_0_1, | 645 | if (adapter->hw_write_wx(adapter, |
665 | &val, 4)) | 646 | NETXEN_NIU_XG1_STATION_ADDR_0_1, val)) |
666 | return -EIO; | 647 | return -EIO; |
667 | 648 | ||
668 | memcpy(&temp, ((u8 *) addr) + 2, sizeof(__le32)); | 649 | memcpy(&temp, ((u8 *) addr) + 2, sizeof(__le32)); |
669 | val = le32_to_cpu(*(__le32 *)temp); | 650 | val = le32_to_cpu(*(__le32 *)temp); |
670 | if (adapter->hw_write_wx(adapter, NETXEN_NIU_XG1_STATION_ADDR_0_HI, | 651 | if (adapter->hw_write_wx(adapter, |
671 | &val, 4)) | 652 | NETXEN_NIU_XG1_STATION_ADDR_0_HI, val)) |
672 | return -EIO; | 653 | return -EIO; |
673 | break; | 654 | break; |
674 | 655 | ||
@@ -689,9 +670,8 @@ int netxen_niu_xg_set_promiscuous_mode(struct netxen_adapter *adapter, | |||
689 | if (port > NETXEN_NIU_MAX_XG_PORTS) | 670 | if (port > NETXEN_NIU_MAX_XG_PORTS) |
690 | return -EINVAL; | 671 | return -EINVAL; |
691 | 672 | ||
692 | if (adapter->hw_read_wx(adapter, | 673 | reg = adapter->hw_read_wx(adapter, |
693 | NETXEN_NIU_XGE_CONFIG_1 + (0x10000 * port), ®, 4)) | 674 | NETXEN_NIU_XGE_CONFIG_1 + (0x10000 * port)); |
694 | return -EIO; | ||
695 | if (mode == NETXEN_NIU_PROMISC_MODE) | 675 | if (mode == NETXEN_NIU_PROMISC_MODE) |
696 | reg = (reg | 0x2000UL); | 676 | reg = (reg | 0x2000UL); |
697 | else | 677 | else |