diff options
Diffstat (limited to 'drivers/net/netxen/netxen_nic_ethtool.c')
-rw-r--r-- | drivers/net/netxen/netxen_nic_ethtool.c | 105 |
1 files changed, 61 insertions, 44 deletions
diff --git a/drivers/net/netxen/netxen_nic_ethtool.c b/drivers/net/netxen/netxen_nic_ethtool.c index a677ff895184..a452b2facb77 100644 --- a/drivers/net/netxen/netxen_nic_ethtool.c +++ b/drivers/net/netxen/netxen_nic_ethtool.c | |||
@@ -30,7 +30,6 @@ | |||
30 | 30 | ||
31 | #include <linux/types.h> | 31 | #include <linux/types.h> |
32 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
33 | #include <asm/uaccess.h> | ||
34 | #include <linux/pci.h> | 33 | #include <linux/pci.h> |
35 | #include <asm/io.h> | 34 | #include <asm/io.h> |
36 | #include <linux/netdevice.h> | 35 | #include <linux/netdevice.h> |
@@ -53,13 +52,9 @@ struct netxen_nic_stats { | |||
53 | #define NETXEN_NIC_INVALID_DATA 0xDEADBEEF | 52 | #define NETXEN_NIC_INVALID_DATA 0xDEADBEEF |
54 | 53 | ||
55 | static const struct netxen_nic_stats netxen_nic_gstrings_stats[] = { | 54 | static const struct netxen_nic_stats netxen_nic_gstrings_stats[] = { |
56 | {"rcvd_bad_skb", NETXEN_NIC_STAT(stats.rcvdbadskb)}, | ||
57 | {"xmit_called", NETXEN_NIC_STAT(stats.xmitcalled)}, | 55 | {"xmit_called", NETXEN_NIC_STAT(stats.xmitcalled)}, |
58 | {"xmited_frames", NETXEN_NIC_STAT(stats.xmitedframes)}, | ||
59 | {"xmit_finished", NETXEN_NIC_STAT(stats.xmitfinished)}, | 56 | {"xmit_finished", NETXEN_NIC_STAT(stats.xmitfinished)}, |
60 | {"bad_skb_len", NETXEN_NIC_STAT(stats.badskblen)}, | 57 | {"rx_dropped", NETXEN_NIC_STAT(stats.rxdropped)}, |
61 | {"no_cmd_desc", NETXEN_NIC_STAT(stats.nocmddescriptor)}, | ||
62 | {"polled", NETXEN_NIC_STAT(stats.polled)}, | ||
63 | {"tx_dropped", NETXEN_NIC_STAT(stats.txdropped)}, | 58 | {"tx_dropped", NETXEN_NIC_STAT(stats.txdropped)}, |
64 | {"csummed", NETXEN_NIC_STAT(stats.csummed)}, | 59 | {"csummed", NETXEN_NIC_STAT(stats.csummed)}, |
65 | {"no_rcv", NETXEN_NIC_STAT(stats.no_rcv)}, | 60 | {"no_rcv", NETXEN_NIC_STAT(stats.no_rcv)}, |
@@ -97,12 +92,9 @@ netxen_nic_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo) | |||
97 | strncpy(drvinfo->driver, netxen_nic_driver_name, 32); | 92 | strncpy(drvinfo->driver, netxen_nic_driver_name, 32); |
98 | strncpy(drvinfo->version, NETXEN_NIC_LINUX_VERSIONID, 32); | 93 | strncpy(drvinfo->version, NETXEN_NIC_LINUX_VERSIONID, 32); |
99 | write_lock_irqsave(&adapter->adapter_lock, flags); | 94 | write_lock_irqsave(&adapter->adapter_lock, flags); |
100 | fw_major = adapter->pci_read_normalize(adapter, | 95 | fw_major = NXRD32(adapter, NETXEN_FW_VERSION_MAJOR); |
101 | NETXEN_FW_VERSION_MAJOR); | 96 | fw_minor = NXRD32(adapter, NETXEN_FW_VERSION_MINOR); |
102 | fw_minor = adapter->pci_read_normalize(adapter, | 97 | fw_build = NXRD32(adapter, NETXEN_FW_VERSION_SUB); |
103 | NETXEN_FW_VERSION_MINOR); | ||
104 | fw_build = adapter->pci_read_normalize(adapter, | ||
105 | NETXEN_FW_VERSION_SUB); | ||
106 | write_unlock_irqrestore(&adapter->adapter_lock, flags); | 98 | write_unlock_irqrestore(&adapter->adapter_lock, flags); |
107 | sprintf(drvinfo->fw_version, "%d.%d.%d", fw_major, fw_minor, fw_build); | 99 | sprintf(drvinfo->fw_version, "%d.%d.%d", fw_major, fw_minor, fw_build); |
108 | 100 | ||
@@ -115,6 +107,7 @@ static int | |||
115 | netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) | 107 | netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) |
116 | { | 108 | { |
117 | struct netxen_adapter *adapter = netdev_priv(dev); | 109 | struct netxen_adapter *adapter = netdev_priv(dev); |
110 | int check_sfp_module = 0; | ||
118 | 111 | ||
119 | /* read which mode */ | 112 | /* read which mode */ |
120 | if (adapter->ahw.port_type == NETXEN_NIC_GBE) { | 113 | if (adapter->ahw.port_type == NETXEN_NIC_GBE) { |
@@ -139,7 +132,7 @@ netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) | |||
139 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { | 132 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { |
140 | u32 val; | 133 | u32 val; |
141 | 134 | ||
142 | adapter->hw_read_wx(adapter, NETXEN_PORT_MODE_ADDR, &val, 4); | 135 | val = NXRD32(adapter, NETXEN_PORT_MODE_ADDR); |
143 | if (val == NETXEN_PORT_MODE_802_3_AP) { | 136 | if (val == NETXEN_PORT_MODE_802_3_AP) { |
144 | ecmd->supported = SUPPORTED_1000baseT_Full; | 137 | ecmd->supported = SUPPORTED_1000baseT_Full; |
145 | ecmd->advertising = ADVERTISED_1000baseT_Full; | 138 | ecmd->advertising = ADVERTISED_1000baseT_Full; |
@@ -148,13 +141,19 @@ netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) | |||
148 | ecmd->advertising = ADVERTISED_10000baseT_Full; | 141 | ecmd->advertising = ADVERTISED_10000baseT_Full; |
149 | } | 142 | } |
150 | 143 | ||
144 | if (netif_running(dev) && adapter->has_link_events) { | ||
145 | ecmd->speed = adapter->link_speed; | ||
146 | ecmd->autoneg = adapter->link_autoneg; | ||
147 | ecmd->duplex = adapter->link_duplex; | ||
148 | goto skip; | ||
149 | } | ||
150 | |||
151 | ecmd->port = PORT_TP; | 151 | ecmd->port = PORT_TP; |
152 | 152 | ||
153 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { | 153 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { |
154 | u16 pcifn = adapter->ahw.pci_func; | 154 | u16 pcifn = adapter->ahw.pci_func; |
155 | 155 | ||
156 | adapter->hw_read_wx(adapter, | 156 | val = NXRD32(adapter, P3_LINK_SPEED_REG(pcifn)); |
157 | P3_LINK_SPEED_REG(pcifn), &val, 4); | ||
158 | ecmd->speed = P3_LINK_SPEED_MHZ * | 157 | ecmd->speed = P3_LINK_SPEED_MHZ * |
159 | P3_LINK_SPEED_VAL(pcifn, val); | 158 | P3_LINK_SPEED_VAL(pcifn, val); |
160 | } else | 159 | } else |
@@ -165,10 +164,11 @@ netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) | |||
165 | } else | 164 | } else |
166 | return -EIO; | 165 | return -EIO; |
167 | 166 | ||
167 | skip: | ||
168 | ecmd->phy_address = adapter->physical_port; | 168 | ecmd->phy_address = adapter->physical_port; |
169 | ecmd->transceiver = XCVR_EXTERNAL; | 169 | ecmd->transceiver = XCVR_EXTERNAL; |
170 | 170 | ||
171 | switch ((netxen_brdtype_t)adapter->ahw.board_type) { | 171 | switch (adapter->ahw.board_type) { |
172 | case NETXEN_BRDTYPE_P2_SB35_4G: | 172 | case NETXEN_BRDTYPE_P2_SB35_4G: |
173 | case NETXEN_BRDTYPE_P2_SB31_2G: | 173 | case NETXEN_BRDTYPE_P2_SB31_2G: |
174 | case NETXEN_BRDTYPE_P3_REF_QG: | 174 | case NETXEN_BRDTYPE_P3_REF_QG: |
@@ -195,7 +195,7 @@ netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) | |||
195 | case NETXEN_BRDTYPE_P3_HMEZ: | 195 | case NETXEN_BRDTYPE_P3_HMEZ: |
196 | ecmd->supported |= SUPPORTED_MII; | 196 | ecmd->supported |= SUPPORTED_MII; |
197 | ecmd->advertising |= ADVERTISED_MII; | 197 | ecmd->advertising |= ADVERTISED_MII; |
198 | ecmd->port = PORT_FIBRE; | 198 | ecmd->port = PORT_MII; |
199 | ecmd->autoneg = AUTONEG_DISABLE; | 199 | ecmd->autoneg = AUTONEG_DISABLE; |
200 | break; | 200 | break; |
201 | case NETXEN_BRDTYPE_P3_10G_SFP_PLUS: | 201 | case NETXEN_BRDTYPE_P3_10G_SFP_PLUS: |
@@ -203,6 +203,8 @@ netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) | |||
203 | case NETXEN_BRDTYPE_P3_10G_SFP_QT: | 203 | case NETXEN_BRDTYPE_P3_10G_SFP_QT: |
204 | ecmd->advertising |= ADVERTISED_TP; | 204 | ecmd->advertising |= ADVERTISED_TP; |
205 | ecmd->supported |= SUPPORTED_TP; | 205 | ecmd->supported |= SUPPORTED_TP; |
206 | check_sfp_module = netif_running(dev) && | ||
207 | adapter->has_link_events; | ||
206 | case NETXEN_BRDTYPE_P2_SB31_10G: | 208 | case NETXEN_BRDTYPE_P2_SB31_10G: |
207 | case NETXEN_BRDTYPE_P3_10G_XFP: | 209 | case NETXEN_BRDTYPE_P3_10G_XFP: |
208 | ecmd->supported |= SUPPORTED_FIBRE; | 210 | ecmd->supported |= SUPPORTED_FIBRE; |
@@ -217,6 +219,8 @@ netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) | |||
217 | ecmd->advertising |= | 219 | ecmd->advertising |= |
218 | (ADVERTISED_FIBRE | ADVERTISED_TP); | 220 | (ADVERTISED_FIBRE | ADVERTISED_TP); |
219 | ecmd->port = PORT_FIBRE; | 221 | ecmd->port = PORT_FIBRE; |
222 | check_sfp_module = netif_running(dev) && | ||
223 | adapter->has_link_events; | ||
220 | } else { | 224 | } else { |
221 | ecmd->autoneg = AUTONEG_ENABLE; | 225 | ecmd->autoneg = AUTONEG_ENABLE; |
222 | ecmd->supported |= (SUPPORTED_TP |SUPPORTED_Autoneg); | 226 | ecmd->supported |= (SUPPORTED_TP |SUPPORTED_Autoneg); |
@@ -227,10 +231,27 @@ netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) | |||
227 | break; | 231 | break; |
228 | default: | 232 | default: |
229 | printk(KERN_ERR "netxen-nic: Unsupported board model %d\n", | 233 | printk(KERN_ERR "netxen-nic: Unsupported board model %d\n", |
230 | (netxen_brdtype_t)adapter->ahw.board_type); | 234 | adapter->ahw.board_type); |
231 | return -EIO; | 235 | return -EIO; |
232 | } | 236 | } |
233 | 237 | ||
238 | if (check_sfp_module) { | ||
239 | switch (adapter->module_type) { | ||
240 | case LINKEVENT_MODULE_OPTICAL_UNKNOWN: | ||
241 | case LINKEVENT_MODULE_OPTICAL_SRLR: | ||
242 | case LINKEVENT_MODULE_OPTICAL_LRM: | ||
243 | case LINKEVENT_MODULE_OPTICAL_SFP_1G: | ||
244 | ecmd->port = PORT_FIBRE; | ||
245 | break; | ||
246 | case LINKEVENT_MODULE_TWINAX_UNSUPPORTED_CABLE: | ||
247 | case LINKEVENT_MODULE_TWINAX_UNSUPPORTED_CABLELEN: | ||
248 | case LINKEVENT_MODULE_TWINAX: | ||
249 | ecmd->port = PORT_TP; | ||
250 | default: | ||
251 | ecmd->port = -1; | ||
252 | } | ||
253 | } | ||
254 | |||
234 | return 0; | 255 | return 0; |
235 | } | 256 | } |
236 | 257 | ||
@@ -398,12 +419,11 @@ netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p) | |||
398 | regs->version = (1 << 24) | (adapter->ahw.revision_id << 16) | | 419 | regs->version = (1 << 24) | (adapter->ahw.revision_id << 16) | |
399 | (adapter->pdev)->device; | 420 | (adapter->pdev)->device; |
400 | /* which mode */ | 421 | /* which mode */ |
401 | adapter->hw_read_wx(adapter, NETXEN_NIU_MODE, ®s_buff[0], 4); | 422 | regs_buff[0] = NXRD32(adapter, NETXEN_NIU_MODE); |
402 | mode = regs_buff[0]; | 423 | mode = regs_buff[0]; |
403 | 424 | ||
404 | /* Common registers to all the modes */ | 425 | /* Common registers to all the modes */ |
405 | adapter->hw_read_wx(adapter, | 426 | regs_buff[2] = NXRD32(adapter, NETXEN_NIU_STRAP_VALUE_SAVE_HIGHER); |
406 | NETXEN_NIU_STRAP_VALUE_SAVE_HIGHER, ®s_buff[2], 4); | ||
407 | /* GB/XGB Mode */ | 427 | /* GB/XGB Mode */ |
408 | mode = (mode / 2) - 1; | 428 | mode = (mode / 2) - 1; |
409 | window = 0; | 429 | window = 0; |
@@ -414,9 +434,8 @@ netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p) | |||
414 | window = adapter->physical_port * | 434 | window = adapter->physical_port * |
415 | NETXEN_NIC_PORT_WINDOW; | 435 | NETXEN_NIC_PORT_WINDOW; |
416 | 436 | ||
417 | adapter->hw_read_wx(adapter, | 437 | regs_buff[i] = NXRD32(adapter, |
418 | niu_registers[mode].reg[i - 3] + window, | 438 | niu_registers[mode].reg[i - 3] + window); |
419 | ®s_buff[i], 4); | ||
420 | } | 439 | } |
421 | 440 | ||
422 | } | 441 | } |
@@ -440,7 +459,7 @@ static u32 netxen_nic_test_link(struct net_device *dev) | |||
440 | return !val; | 459 | return !val; |
441 | } | 460 | } |
442 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { | 461 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { |
443 | val = adapter->pci_read_normalize(adapter, CRB_XG_STATE); | 462 | val = NXRD32(adapter, CRB_XG_STATE); |
444 | return (val == XG_LINK_UP) ? 0 : 1; | 463 | return (val == XG_LINK_UP) ? 0 : 1; |
445 | } | 464 | } |
446 | return -EIO; | 465 | return -EIO; |
@@ -504,10 +523,9 @@ netxen_nic_get_pauseparam(struct net_device *dev, | |||
504 | if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) | 523 | if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) |
505 | return; | 524 | return; |
506 | /* get flow control settings */ | 525 | /* get flow control settings */ |
507 | netxen_nic_read_w0(adapter,NETXEN_NIU_GB_MAC_CONFIG_0(port), | 526 | val = NXRD32(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(port)); |
508 | &val); | ||
509 | pause->rx_pause = netxen_gb_get_rx_flowctl(val); | 527 | pause->rx_pause = netxen_gb_get_rx_flowctl(val); |
510 | netxen_nic_read_w0(adapter, NETXEN_NIU_GB_PAUSE_CTL, &val); | 528 | val = NXRD32(adapter, NETXEN_NIU_GB_PAUSE_CTL); |
511 | switch (port) { | 529 | switch (port) { |
512 | case 0: | 530 | case 0: |
513 | pause->tx_pause = !(netxen_gb_get_gb0_mask(val)); | 531 | pause->tx_pause = !(netxen_gb_get_gb0_mask(val)); |
@@ -527,7 +545,7 @@ netxen_nic_get_pauseparam(struct net_device *dev, | |||
527 | if ((port < 0) || (port > NETXEN_NIU_MAX_XG_PORTS)) | 545 | if ((port < 0) || (port > NETXEN_NIU_MAX_XG_PORTS)) |
528 | return; | 546 | return; |
529 | pause->rx_pause = 1; | 547 | pause->rx_pause = 1; |
530 | netxen_nic_read_w0(adapter, NETXEN_NIU_XG_PAUSE_CTL, &val); | 548 | val = NXRD32(adapter, NETXEN_NIU_XG_PAUSE_CTL); |
531 | if (port == 0) | 549 | if (port == 0) |
532 | pause->tx_pause = !(netxen_xg_get_xg0_mask(val)); | 550 | pause->tx_pause = !(netxen_xg_get_xg0_mask(val)); |
533 | else | 551 | else |
@@ -550,18 +568,17 @@ netxen_nic_set_pauseparam(struct net_device *dev, | |||
550 | if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) | 568 | if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) |
551 | return -EIO; | 569 | return -EIO; |
552 | /* set flow control */ | 570 | /* set flow control */ |
553 | netxen_nic_read_w0(adapter, | 571 | val = NXRD32(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(port)); |
554 | NETXEN_NIU_GB_MAC_CONFIG_0(port), &val); | ||
555 | 572 | ||
556 | if (pause->rx_pause) | 573 | if (pause->rx_pause) |
557 | netxen_gb_rx_flowctl(val); | 574 | netxen_gb_rx_flowctl(val); |
558 | else | 575 | else |
559 | netxen_gb_unset_rx_flowctl(val); | 576 | netxen_gb_unset_rx_flowctl(val); |
560 | 577 | ||
561 | netxen_nic_write_w0(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(port), | 578 | NXWR32(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(port), |
562 | val); | 579 | val); |
563 | /* set autoneg */ | 580 | /* set autoneg */ |
564 | netxen_nic_read_w0(adapter, NETXEN_NIU_GB_PAUSE_CTL, &val); | 581 | val = NXRD32(adapter, NETXEN_NIU_GB_PAUSE_CTL); |
565 | switch (port) { | 582 | switch (port) { |
566 | case 0: | 583 | case 0: |
567 | if (pause->tx_pause) | 584 | if (pause->tx_pause) |
@@ -589,11 +606,11 @@ netxen_nic_set_pauseparam(struct net_device *dev, | |||
589 | netxen_gb_set_gb3_mask(val); | 606 | netxen_gb_set_gb3_mask(val); |
590 | break; | 607 | break; |
591 | } | 608 | } |
592 | netxen_nic_write_w0(adapter, NETXEN_NIU_GB_PAUSE_CTL, val); | 609 | NXWR32(adapter, NETXEN_NIU_GB_PAUSE_CTL, val); |
593 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { | 610 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { |
594 | if ((port < 0) || (port > NETXEN_NIU_MAX_XG_PORTS)) | 611 | if ((port < 0) || (port > NETXEN_NIU_MAX_XG_PORTS)) |
595 | return -EIO; | 612 | return -EIO; |
596 | netxen_nic_read_w0(adapter, NETXEN_NIU_XG_PAUSE_CTL, &val); | 613 | val = NXRD32(adapter, NETXEN_NIU_XG_PAUSE_CTL); |
597 | if (port == 0) { | 614 | if (port == 0) { |
598 | if (pause->tx_pause) | 615 | if (pause->tx_pause) |
599 | netxen_xg_unset_xg0_mask(val); | 616 | netxen_xg_unset_xg0_mask(val); |
@@ -605,7 +622,7 @@ netxen_nic_set_pauseparam(struct net_device *dev, | |||
605 | else | 622 | else |
606 | netxen_xg_set_xg1_mask(val); | 623 | netxen_xg_set_xg1_mask(val); |
607 | } | 624 | } |
608 | netxen_nic_write_w0(adapter, NETXEN_NIU_XG_PAUSE_CTL, val); | 625 | NXWR32(adapter, NETXEN_NIU_XG_PAUSE_CTL, val); |
609 | } else { | 626 | } else { |
610 | printk(KERN_ERR "%s: Unknown board type: %x\n", | 627 | printk(KERN_ERR "%s: Unknown board type: %x\n", |
611 | netxen_nic_driver_name, | 628 | netxen_nic_driver_name, |
@@ -619,14 +636,14 @@ static int netxen_nic_reg_test(struct net_device *dev) | |||
619 | struct netxen_adapter *adapter = netdev_priv(dev); | 636 | struct netxen_adapter *adapter = netdev_priv(dev); |
620 | u32 data_read, data_written; | 637 | u32 data_read, data_written; |
621 | 638 | ||
622 | netxen_nic_read_w0(adapter, NETXEN_PCIX_PH_REG(0), &data_read); | 639 | data_read = NXRD32(adapter, NETXEN_PCIX_PH_REG(0)); |
623 | if ((data_read & 0xffff) != PHAN_VENDOR_ID) | 640 | if ((data_read & 0xffff) != PHAN_VENDOR_ID) |
624 | return 1; | 641 | return 1; |
625 | 642 | ||
626 | data_written = (u32)0xa5a5a5a5; | 643 | data_written = (u32)0xa5a5a5a5; |
627 | 644 | ||
628 | netxen_nic_reg_write(adapter, CRB_SCRATCHPAD_TEST, data_written); | 645 | NXWR32(adapter, CRB_SCRATCHPAD_TEST, data_written); |
629 | data_read = adapter->pci_read_normalize(adapter, CRB_SCRATCHPAD_TEST); | 646 | data_read = NXRD32(adapter, CRB_SCRATCHPAD_TEST); |
630 | if (data_written != data_read) | 647 | if (data_written != data_read) |
631 | return 1; | 648 | return 1; |
632 | 649 | ||
@@ -743,11 +760,11 @@ netxen_nic_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) | |||
743 | if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) | 760 | if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) |
744 | return; | 761 | return; |
745 | 762 | ||
746 | wol_cfg = netxen_nic_reg_read(adapter, NETXEN_WOL_CONFIG_NV); | 763 | wol_cfg = NXRD32(adapter, NETXEN_WOL_CONFIG_NV); |
747 | if (wol_cfg & (1UL << adapter->portnum)) | 764 | if (wol_cfg & (1UL << adapter->portnum)) |
748 | wol->supported |= WAKE_MAGIC; | 765 | wol->supported |= WAKE_MAGIC; |
749 | 766 | ||
750 | wol_cfg = netxen_nic_reg_read(adapter, NETXEN_WOL_CONFIG); | 767 | wol_cfg = NXRD32(adapter, NETXEN_WOL_CONFIG); |
751 | if (wol_cfg & (1UL << adapter->portnum)) | 768 | if (wol_cfg & (1UL << adapter->portnum)) |
752 | wol->wolopts |= WAKE_MAGIC; | 769 | wol->wolopts |= WAKE_MAGIC; |
753 | } | 770 | } |
@@ -764,16 +781,16 @@ netxen_nic_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) | |||
764 | if (wol->wolopts & ~WAKE_MAGIC) | 781 | if (wol->wolopts & ~WAKE_MAGIC) |
765 | return -EOPNOTSUPP; | 782 | return -EOPNOTSUPP; |
766 | 783 | ||
767 | wol_cfg = netxen_nic_reg_read(adapter, NETXEN_WOL_CONFIG_NV); | 784 | wol_cfg = NXRD32(adapter, NETXEN_WOL_CONFIG_NV); |
768 | if (!(wol_cfg & (1 << adapter->portnum))) | 785 | if (!(wol_cfg & (1 << adapter->portnum))) |
769 | return -EOPNOTSUPP; | 786 | return -EOPNOTSUPP; |
770 | 787 | ||
771 | wol_cfg = netxen_nic_reg_read(adapter, NETXEN_WOL_CONFIG); | 788 | wol_cfg = NXRD32(adapter, NETXEN_WOL_CONFIG); |
772 | if (wol->wolopts & WAKE_MAGIC) | 789 | if (wol->wolopts & WAKE_MAGIC) |
773 | wol_cfg |= 1UL << adapter->portnum; | 790 | wol_cfg |= 1UL << adapter->portnum; |
774 | else | 791 | else |
775 | wol_cfg &= ~(1UL << adapter->portnum); | 792 | wol_cfg &= ~(1UL << adapter->portnum); |
776 | netxen_nic_reg_write(adapter, NETXEN_WOL_CONFIG, wol_cfg); | 793 | NXWR32(adapter, NETXEN_WOL_CONFIG, wol_cfg); |
777 | 794 | ||
778 | return 0; | 795 | return 0; |
779 | } | 796 | } |