Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

e1000: Use hw, er32, and ew32

Use struct e1000_hw *hw = adapter->hw; where necessary
Change macros E1000_READ_REG and E1000_WRITE_REG to er32 and ew32

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

authored by

Joe Perches and committed by
Jeff Garzik
1dc32918 64798845

+1020 -961
+169 -144
drivers/net/e1000/e1000_ethtool.c
··· 162 162 ecmd->transceiver = XCVR_EXTERNAL; 163 163 } 164 164 165 - if (E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_LU) { 165 + if (er32(STATUS) & E1000_STATUS_LU) { 166 166 167 167 e1000_get_speed_and_duplex(hw, &adapter->link_speed, 168 168 &adapter->link_duplex); ··· 313 313 static int e1000_set_tx_csum(struct net_device *netdev, u32 data) 314 314 { 315 315 struct e1000_adapter *adapter = netdev_priv(netdev); 316 + struct e1000_hw *hw = &adapter->hw; 316 317 317 - if (adapter->hw.mac_type < e1000_82543) { 318 + if (hw->mac_type < e1000_82543) { 318 319 if (!data) 319 320 return -EINVAL; 320 321 return 0; ··· 332 331 static int e1000_set_tso(struct net_device *netdev, u32 data) 333 332 { 334 333 struct e1000_adapter *adapter = netdev_priv(netdev); 335 - if ((adapter->hw.mac_type < e1000_82544) || 336 - (adapter->hw.mac_type == e1000_82547)) 334 + struct e1000_hw *hw = &adapter->hw; 335 + 336 + if ((hw->mac_type < e1000_82544) || 337 + (hw->mac_type == e1000_82547)) 337 338 return data ? -EINVAL : 0; 338 339 339 340 if (data) ··· 383 380 384 381 regs->version = (1 << 24) | (hw->revision_id << 16) | hw->device_id; 385 382 386 - regs_buff[0] = E1000_READ_REG(hw, CTRL); 387 - regs_buff[1] = E1000_READ_REG(hw, STATUS); 383 + regs_buff[0] = er32(CTRL); 384 + regs_buff[1] = er32(STATUS); 388 385 389 - regs_buff[2] = E1000_READ_REG(hw, RCTL); 390 - regs_buff[3] = E1000_READ_REG(hw, RDLEN); 391 - regs_buff[4] = E1000_READ_REG(hw, RDH); 392 - regs_buff[5] = E1000_READ_REG(hw, RDT); 393 - regs_buff[6] = E1000_READ_REG(hw, RDTR); 386 + regs_buff[2] = er32(RCTL); 387 + regs_buff[3] = er32(RDLEN); 388 + regs_buff[4] = er32(RDH); 389 + regs_buff[5] = er32(RDT); 390 + regs_buff[6] = er32(RDTR); 394 391 395 - regs_buff[7] = E1000_READ_REG(hw, TCTL); 396 - regs_buff[8] = E1000_READ_REG(hw, TDLEN); 397 - regs_buff[9] = E1000_READ_REG(hw, TDH); 398 - regs_buff[10] = E1000_READ_REG(hw, TDT); 399 - regs_buff[11] = E1000_READ_REG(hw, TIDV); 392 + regs_buff[7] = er32(TCTL); 393 + regs_buff[8] = er32(TDLEN); 394 + regs_buff[9] = er32(TDH); 395 + regs_buff[10] = er32(TDT); 396 + regs_buff[11] = er32(TIDV); 400 397 401 - regs_buff[12] = adapter->hw.phy_type; /* PHY type (IGP=1, M88=0) */ 398 + regs_buff[12] = hw->phy_type; /* PHY type (IGP=1, M88=0) */ 402 399 if (hw->phy_type == e1000_phy_igp) { 403 400 e1000_write_phy_reg(hw, IGP01E1000_PHY_PAGE_SELECT, 404 401 IGP01E1000_PHY_AGC_A); ··· 456 453 if (hw->mac_type >= e1000_82540 && 457 454 hw->mac_type < e1000_82571 && 458 455 hw->media_type == e1000_media_type_copper) { 459 - regs_buff[26] = E1000_READ_REG(hw, MANC); 456 + regs_buff[26] = er32(MANC); 460 457 } 461 458 } 462 459 463 460 static int e1000_get_eeprom_len(struct net_device *netdev) 464 461 { 465 462 struct e1000_adapter *adapter = netdev_priv(netdev); 466 - return adapter->hw.eeprom.word_size * 2; 463 + struct e1000_hw *hw = &adapter->hw; 464 + 465 + return hw->eeprom.word_size * 2; 467 466 } 468 467 469 468 static int e1000_get_eeprom(struct net_device *netdev, ··· 579 574 struct ethtool_drvinfo *drvinfo) 580 575 { 581 576 struct e1000_adapter *adapter = netdev_priv(netdev); 577 + struct e1000_hw *hw = &adapter->hw; 582 578 char firmware_version[32]; 583 579 u16 eeprom_data; 584 580 ··· 588 582 589 583 /* EEPROM image version # is reported as firmware version # for 590 584 * 8257{1|2|3} controllers */ 591 - e1000_read_eeprom(&adapter->hw, 5, 1, &eeprom_data); 592 - switch (adapter->hw.mac_type) { 585 + e1000_read_eeprom(hw, 5, 1, &eeprom_data); 586 + switch (hw->mac_type) { 593 587 case e1000_82571: 594 588 case e1000_82572: 595 589 case e1000_82573: ··· 614 608 struct ethtool_ringparam *ring) 615 609 { 616 610 struct e1000_adapter *adapter = netdev_priv(netdev); 617 - e1000_mac_type mac_type = adapter->hw.mac_type; 611 + struct e1000_hw *hw = &adapter->hw; 612 + e1000_mac_type mac_type = hw->mac_type; 618 613 struct e1000_tx_ring *txdr = adapter->tx_ring; 619 614 struct e1000_rx_ring *rxdr = adapter->rx_ring; 620 615 ··· 635 628 struct ethtool_ringparam *ring) 636 629 { 637 630 struct e1000_adapter *adapter = netdev_priv(netdev); 638 - e1000_mac_type mac_type = adapter->hw.mac_type; 631 + struct e1000_hw *hw = &adapter->hw; 632 + e1000_mac_type mac_type = hw->mac_type; 639 633 struct e1000_tx_ring *txdr, *tx_old; 640 634 struct e1000_rx_ring *rxdr, *rx_old; 641 635 int i, err; ··· 722 714 static bool reg_pattern_test(struct e1000_adapter *adapter, u64 *data, int reg, 723 715 u32 mask, u32 write) 724 716 { 717 + struct e1000_hw *hw = &adapter->hw; 725 718 static const u32 test[] = 726 719 {0x5A5A5A5A, 0xA5A5A5A5, 0x00000000, 0xFFFFFFFF}; 727 - u8 __iomem *address = adapter->hw.hw_addr + reg; 720 + u8 __iomem *address = hw->hw_addr + reg; 728 721 u32 read; 729 722 int i; 730 723 ··· 746 737 static bool reg_set_and_check(struct e1000_adapter *adapter, u64 *data, int reg, 747 738 u32 mask, u32 write) 748 739 { 749 - u8 __iomem *address = adapter->hw.hw_addr + reg; 740 + struct e1000_hw *hw = &adapter->hw; 741 + u8 __iomem *address = hw->hw_addr + reg; 750 742 u32 read; 751 743 752 744 writel(write & mask, address); ··· 765 755 #define REG_PATTERN_TEST(reg, mask, write) \ 766 756 do { \ 767 757 if (reg_pattern_test(adapter, data, \ 768 - (adapter->hw.mac_type >= e1000_82543) \ 758 + (hw->mac_type >= e1000_82543) \ 769 759 ? E1000_##reg : E1000_82542_##reg, \ 770 760 mask, write)) \ 771 761 return 1; \ ··· 774 764 #define REG_SET_AND_CHECK(reg, mask, write) \ 775 765 do { \ 776 766 if (reg_set_and_check(adapter, data, \ 777 - (adapter->hw.mac_type >= e1000_82543) \ 767 + (hw->mac_type >= e1000_82543) \ 778 768 ? E1000_##reg : E1000_82542_##reg, \ 779 769 mask, write)) \ 780 770 return 1; \ ··· 784 774 { 785 775 u32 value, before, after; 786 776 u32 i, toggle; 777 + struct e1000_hw *hw = &adapter->hw; 787 778 788 779 /* The status register is Read Only, so a write should fail. 789 780 * Some bits that get toggled are ignored. 790 781 */ 791 - switch (adapter->hw.mac_type) { 782 + switch (hw->mac_type) { 792 783 /* there are several bits on newer hardware that are r/w */ 793 784 case e1000_82571: 794 785 case e1000_82572: ··· 805 794 break; 806 795 } 807 796 808 - before = E1000_READ_REG(&adapter->hw, STATUS); 809 - value = (E1000_READ_REG(&adapter->hw, STATUS) & toggle); 810 - E1000_WRITE_REG(&adapter->hw, STATUS, toggle); 811 - after = E1000_READ_REG(&adapter->hw, STATUS) & toggle; 797 + before = er32(STATUS); 798 + value = (er32(STATUS) & toggle); 799 + ew32(STATUS, toggle); 800 + after = er32(STATUS) & toggle; 812 801 if (value != after) { 813 802 DPRINTK(DRV, ERR, "failed STATUS register test got: " 814 803 "0x%08X expected: 0x%08X\n", after, value); ··· 816 805 return 1; 817 806 } 818 807 /* restore previous status */ 819 - E1000_WRITE_REG(&adapter->hw, STATUS, before); 808 + ew32(STATUS, before); 820 809 821 - if (adapter->hw.mac_type != e1000_ich8lan) { 810 + if (hw->mac_type != e1000_ich8lan) { 822 811 REG_PATTERN_TEST(FCAL, 0xFFFFFFFF, 0xFFFFFFFF); 823 812 REG_PATTERN_TEST(FCAH, 0x0000FFFF, 0xFFFFFFFF); 824 813 REG_PATTERN_TEST(FCT, 0x0000FFFF, 0xFFFFFFFF); ··· 838 827 839 828 REG_SET_AND_CHECK(RCTL, 0xFFFFFFFF, 0x00000000); 840 829 841 - before = (adapter->hw.mac_type == e1000_ich8lan ? 830 + before = (hw->mac_type == e1000_ich8lan ? 842 831 0x06C3B33E : 0x06DFB3FE); 843 832 REG_SET_AND_CHECK(RCTL, before, 0x003FFFFB); 844 833 REG_SET_AND_CHECK(TCTL, 0xFFFFFFFF, 0x00000000); 845 834 846 - if (adapter->hw.mac_type >= e1000_82543) { 835 + if (hw->mac_type >= e1000_82543) { 847 836 848 837 REG_SET_AND_CHECK(RCTL, before, 0xFFFFFFFF); 849 838 REG_PATTERN_TEST(RDBAL, 0xFFFFFFF0, 0xFFFFFFFF); 850 - if (adapter->hw.mac_type != e1000_ich8lan) 839 + if (hw->mac_type != e1000_ich8lan) 851 840 REG_PATTERN_TEST(TXCW, 0xC000FFFF, 0x0000FFFF); 852 841 REG_PATTERN_TEST(TDBAL, 0xFFFFFFF0, 0xFFFFFFFF); 853 842 REG_PATTERN_TEST(TIDV, 0x0000FFFF, 0x0000FFFF); 854 - value = (adapter->hw.mac_type == e1000_ich8lan ? 843 + value = (hw->mac_type == e1000_ich8lan ? 855 844 E1000_RAR_ENTRIES_ICH8LAN : E1000_RAR_ENTRIES); 856 845 for (i = 0; i < value; i++) { 857 846 REG_PATTERN_TEST(RA + (((i << 1) + 1) << 2), 0x8003FFFF, ··· 867 856 868 857 } 869 858 870 - value = (adapter->hw.mac_type == e1000_ich8lan ? 859 + value = (hw->mac_type == e1000_ich8lan ? 871 860 E1000_MC_TBL_SIZE_ICH8LAN : E1000_MC_TBL_SIZE); 872 861 for (i = 0; i < value; i++) 873 862 REG_PATTERN_TEST(MTA + (i << 2), 0xFFFFFFFF, 0xFFFFFFFF); ··· 878 867 879 868 static int e1000_eeprom_test(struct e1000_adapter *adapter, u64 *data) 880 869 { 870 + struct e1000_hw *hw = &adapter->hw; 881 871 u16 temp; 882 872 u16 checksum = 0; 883 873 u16 i; ··· 886 874 *data = 0; 887 875 /* Read and add up the contents of the EEPROM */ 888 876 for (i = 0; i < (EEPROM_CHECKSUM_REG + 1); i++) { 889 - if ((e1000_read_eeprom(&adapter->hw, i, 1, &temp)) < 0) { 877 + if ((e1000_read_eeprom(hw, i, 1, &temp)) < 0) { 890 878 *data = 1; 891 879 break; 892 880 } ··· 904 892 { 905 893 struct net_device *netdev = (struct net_device *) data; 906 894 struct e1000_adapter *adapter = netdev_priv(netdev); 895 + struct e1000_hw *hw = &adapter->hw; 907 896 908 - adapter->test_icr |= E1000_READ_REG(&adapter->hw, ICR); 897 + adapter->test_icr |= er32(ICR); 909 898 910 899 return IRQ_HANDLED; 911 900 } ··· 917 904 u32 mask, i = 0; 918 905 bool shared_int = true; 919 906 u32 irq = adapter->pdev->irq; 907 + struct e1000_hw *hw = &adapter->hw; 920 908 921 909 *data = 0; 922 910 ··· 935 921 (shared_int ? "shared" : "unshared")); 936 922 937 923 /* Disable all the interrupts */ 938 - E1000_WRITE_REG(&adapter->hw, IMC, 0xFFFFFFFF); 924 + ew32(IMC, 0xFFFFFFFF); 939 925 msleep(10); 940 926 941 927 /* Test each interrupt */ 942 928 for (; i < 10; i++) { 943 929 944 - if (adapter->hw.mac_type == e1000_ich8lan && i == 8) 930 + if (hw->mac_type == e1000_ich8lan && i == 8) 945 931 continue; 946 932 947 933 /* Interrupt to test */ ··· 955 941 * test failed. 956 942 */ 957 943 adapter->test_icr = 0; 958 - E1000_WRITE_REG(&adapter->hw, IMC, mask); 959 - E1000_WRITE_REG(&adapter->hw, ICS, mask); 944 + ew32(IMC, mask); 945 + ew32(ICS, mask); 960 946 msleep(10); 961 947 962 948 if (adapter->test_icr & mask) { ··· 972 958 * test failed. 973 959 */ 974 960 adapter->test_icr = 0; 975 - E1000_WRITE_REG(&adapter->hw, IMS, mask); 976 - E1000_WRITE_REG(&adapter->hw, ICS, mask); 961 + ew32(IMS, mask); 962 + ew32(ICS, mask); 977 963 msleep(10); 978 964 979 965 if (!(adapter->test_icr & mask)) { ··· 989 975 * test failed. 990 976 */ 991 977 adapter->test_icr = 0; 992 - E1000_WRITE_REG(&adapter->hw, IMC, ~mask & 0x00007FFF); 993 - E1000_WRITE_REG(&adapter->hw, ICS, ~mask & 0x00007FFF); 978 + ew32(IMC, ~mask & 0x00007FFF); 979 + ew32(ICS, ~mask & 0x00007FFF); 994 980 msleep(10); 995 981 996 982 if (adapter->test_icr) { ··· 1001 987 } 1002 988 1003 989 /* Disable all the interrupts */ 1004 - E1000_WRITE_REG(&adapter->hw, IMC, 0xFFFFFFFF); 990 + ew32(IMC, 0xFFFFFFFF); 1005 991 msleep(10); 1006 992 1007 993 /* Unhook test interrupt handler */ ··· 1058 1044 1059 1045 static int e1000_setup_desc_rings(struct e1000_adapter *adapter) 1060 1046 { 1047 + struct e1000_hw *hw = &adapter->hw; 1061 1048 struct e1000_tx_ring *txdr = &adapter->test_tx_ring; 1062 1049 struct e1000_rx_ring *rxdr = &adapter->test_rx_ring; 1063 1050 struct pci_dev *pdev = adapter->pdev; ··· 1087 1072 memset(txdr->desc, 0, txdr->size); 1088 1073 txdr->next_to_use = txdr->next_to_clean = 0; 1089 1074 1090 - E1000_WRITE_REG(&adapter->hw, TDBAL, 1091 - ((u64) txdr->dma & 0x00000000FFFFFFFF)); 1092 - E1000_WRITE_REG(&adapter->hw, TDBAH, ((u64) txdr->dma >> 32)); 1093 - E1000_WRITE_REG(&adapter->hw, TDLEN, 1094 - txdr->count * sizeof(struct e1000_tx_desc)); 1095 - E1000_WRITE_REG(&adapter->hw, TDH, 0); 1096 - E1000_WRITE_REG(&adapter->hw, TDT, 0); 1097 - E1000_WRITE_REG(&adapter->hw, TCTL, 1098 - E1000_TCTL_PSP | E1000_TCTL_EN | 1099 - E1000_COLLISION_THRESHOLD << E1000_CT_SHIFT | 1100 - E1000_FDX_COLLISION_DISTANCE << E1000_COLD_SHIFT); 1075 + ew32(TDBAL, ((u64) txdr->dma & 0x00000000FFFFFFFF)); 1076 + ew32(TDBAH, ((u64) txdr->dma >> 32)); 1077 + ew32(TDLEN, txdr->count * sizeof(struct e1000_tx_desc)); 1078 + ew32(TDH, 0); 1079 + ew32(TDT, 0); 1080 + ew32(TCTL, E1000_TCTL_PSP | E1000_TCTL_EN | 1081 + E1000_COLLISION_THRESHOLD << E1000_CT_SHIFT | 1082 + E1000_FDX_COLLISION_DISTANCE << E1000_COLD_SHIFT); 1101 1083 1102 1084 for (i = 0; i < txdr->count; i++) { 1103 1085 struct e1000_tx_desc *tx_desc = E1000_TX_DESC(*txdr, i); ··· 1139 1127 memset(rxdr->desc, 0, rxdr->size); 1140 1128 rxdr->next_to_use = rxdr->next_to_clean = 0; 1141 1129 1142 - rctl = E1000_READ_REG(&adapter->hw, RCTL); 1143 - E1000_WRITE_REG(&adapter->hw, RCTL, rctl & ~E1000_RCTL_EN); 1144 - E1000_WRITE_REG(&adapter->hw, RDBAL, 1145 - ((u64) rxdr->dma & 0xFFFFFFFF)); 1146 - E1000_WRITE_REG(&adapter->hw, RDBAH, ((u64) rxdr->dma >> 32)); 1147 - E1000_WRITE_REG(&adapter->hw, RDLEN, rxdr->size); 1148 - E1000_WRITE_REG(&adapter->hw, RDH, 0); 1149 - E1000_WRITE_REG(&adapter->hw, RDT, 0); 1130 + rctl = er32(RCTL); 1131 + ew32(RCTL, rctl & ~E1000_RCTL_EN); 1132 + ew32(RDBAL, ((u64) rxdr->dma & 0xFFFFFFFF)); 1133 + ew32(RDBAH, ((u64) rxdr->dma >> 32)); 1134 + ew32(RDLEN, rxdr->size); 1135 + ew32(RDH, 0); 1136 + ew32(RDT, 0); 1150 1137 rctl = E1000_RCTL_EN | E1000_RCTL_BAM | E1000_RCTL_SZ_2048 | 1151 1138 E1000_RCTL_LBM_NO | E1000_RCTL_RDMTS_HALF | 1152 - (adapter->hw.mc_filter_type << E1000_RCTL_MO_SHIFT); 1153 - E1000_WRITE_REG(&adapter->hw, RCTL, rctl); 1139 + (hw->mc_filter_type << E1000_RCTL_MO_SHIFT); 1140 + ew32(RCTL, rctl); 1154 1141 1155 1142 for (i = 0; i < rxdr->count; i++) { 1156 1143 struct e1000_rx_desc *rx_desc = E1000_RX_DESC(*rxdr, i); ··· 1179 1168 1180 1169 static void e1000_phy_disable_receiver(struct e1000_adapter *adapter) 1181 1170 { 1171 + struct e1000_hw *hw = &adapter->hw; 1172 + 1182 1173 /* Write out to PHY registers 29 and 30 to disable the Receiver. */ 1183 - e1000_write_phy_reg(&adapter->hw, 29, 0x001F); 1184 - e1000_write_phy_reg(&adapter->hw, 30, 0x8FFC); 1185 - e1000_write_phy_reg(&adapter->hw, 29, 0x001A); 1186 - e1000_write_phy_reg(&adapter->hw, 30, 0x8FF0); 1174 + e1000_write_phy_reg(hw, 29, 0x001F); 1175 + e1000_write_phy_reg(hw, 30, 0x8FFC); 1176 + e1000_write_phy_reg(hw, 29, 0x001A); 1177 + e1000_write_phy_reg(hw, 30, 0x8FF0); 1187 1178 } 1188 1179 1189 1180 static void e1000_phy_reset_clk_and_crs(struct e1000_adapter *adapter) 1190 1181 { 1182 + struct e1000_hw *hw = &adapter->hw; 1191 1183 u16 phy_reg; 1192 1184 1193 1185 /* Because we reset the PHY above, we need to re-force TX_CLK in the 1194 1186 * Extended PHY Specific Control Register to 25MHz clock. This 1195 1187 * value defaults back to a 2.5MHz clock when the PHY is reset. 1196 1188 */ 1197 - e1000_read_phy_reg(&adapter->hw, M88E1000_EXT_PHY_SPEC_CTRL, &phy_reg); 1189 + e1000_read_phy_reg(hw, M88E1000_EXT_PHY_SPEC_CTRL, &phy_reg); 1198 1190 phy_reg |= M88E1000_EPSCR_TX_CLK_25; 1199 - e1000_write_phy_reg(&adapter->hw, 1191 + e1000_write_phy_reg(hw, 1200 1192 M88E1000_EXT_PHY_SPEC_CTRL, phy_reg); 1201 1193 1202 1194 /* In addition, because of the s/w reset above, we need to enable 1203 1195 * CRS on TX. This must be set for both full and half duplex 1204 1196 * operation. 1205 1197 */ 1206 - e1000_read_phy_reg(&adapter->hw, M88E1000_PHY_SPEC_CTRL, &phy_reg); 1198 + e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_reg); 1207 1199 phy_reg |= M88E1000_PSCR_ASSERT_CRS_ON_TX; 1208 - e1000_write_phy_reg(&adapter->hw, 1200 + e1000_write_phy_reg(hw, 1209 1201 M88E1000_PHY_SPEC_CTRL, phy_reg); 1210 1202 } 1211 1203 1212 1204 static int e1000_nonintegrated_phy_loopback(struct e1000_adapter *adapter) 1213 1205 { 1206 + struct e1000_hw *hw = &adapter->hw; 1214 1207 u32 ctrl_reg; 1215 1208 u16 phy_reg; 1216 1209 1217 1210 /* Setup the Device Control Register for PHY loopback test. */ 1218 1211 1219 - ctrl_reg = E1000_READ_REG(&adapter->hw, CTRL); 1212 + ctrl_reg = er32(CTRL); 1220 1213 ctrl_reg |= (E1000_CTRL_ILOS | /* Invert Loss-Of-Signal */ 1221 1214 E1000_CTRL_FRCSPD | /* Set the Force Speed Bit */ 1222 1215 E1000_CTRL_FRCDPX | /* Set the Force Duplex Bit */ 1223 1216 E1000_CTRL_SPD_1000 | /* Force Speed to 1000 */ 1224 1217 E1000_CTRL_FD); /* Force Duplex to FULL */ 1225 1218 1226 - E1000_WRITE_REG(&adapter->hw, CTRL, ctrl_reg); 1219 + ew32(CTRL, ctrl_reg); 1227 1220 1228 1221 /* Read the PHY Specific Control Register (0x10) */ 1229 - e1000_read_phy_reg(&adapter->hw, M88E1000_PHY_SPEC_CTRL, &phy_reg); 1222 + e1000_read_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_reg); 1230 1223 1231 1224 /* Clear Auto-Crossover bits in PHY Specific Control Register 1232 1225 * (bits 6:5). 1233 1226 */ 1234 1227 phy_reg &= ~M88E1000_PSCR_AUTO_X_MODE; 1235 - e1000_write_phy_reg(&adapter->hw, M88E1000_PHY_SPEC_CTRL, phy_reg); 1228 + e1000_write_phy_reg(hw, M88E1000_PHY_SPEC_CTRL, phy_reg); 1236 1229 1237 1230 /* Perform software reset on the PHY */ 1238 - e1000_phy_reset(&adapter->hw); 1231 + e1000_phy_reset(hw); 1239 1232 1240 1233 /* Have to setup TX_CLK and TX_CRS after software reset */ 1241 1234 e1000_phy_reset_clk_and_crs(adapter); 1242 1235 1243 - e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x8100); 1236 + e1000_write_phy_reg(hw, PHY_CTRL, 0x8100); 1244 1237 1245 1238 /* Wait for reset to complete. */ 1246 1239 udelay(500); ··· 1256 1241 e1000_phy_disable_receiver(adapter); 1257 1242 1258 1243 /* Set the loopback bit in the PHY control register. */ 1259 - e1000_read_phy_reg(&adapter->hw, PHY_CTRL, &phy_reg); 1244 + e1000_read_phy_reg(hw, PHY_CTRL, &phy_reg); 1260 1245 phy_reg |= MII_CR_LOOPBACK; 1261 - e1000_write_phy_reg(&adapter->hw, PHY_CTRL, phy_reg); 1246 + e1000_write_phy_reg(hw, PHY_CTRL, phy_reg); 1262 1247 1263 1248 /* Setup TX_CLK and TX_CRS one more time. */ 1264 1249 e1000_phy_reset_clk_and_crs(adapter); 1265 1250 1266 1251 /* Check Phy Configuration */ 1267 - e1000_read_phy_reg(&adapter->hw, PHY_CTRL, &phy_reg); 1252 + e1000_read_phy_reg(hw, PHY_CTRL, &phy_reg); 1268 1253 if (phy_reg != 0x4100) 1269 1254 return 9; 1270 1255 1271 - e1000_read_phy_reg(&adapter->hw, M88E1000_EXT_PHY_SPEC_CTRL, &phy_reg); 1256 + e1000_read_phy_reg(hw, M88E1000_EXT_PHY_SPEC_CTRL, &phy_reg); 1272 1257 if (phy_reg != 0x0070) 1273 1258 return 10; 1274 1259 1275 - e1000_read_phy_reg(&adapter->hw, 29, &phy_reg); 1260 + e1000_read_phy_reg(hw, 29, &phy_reg); 1276 1261 if (phy_reg != 0x001A) 1277 1262 return 11; 1278 1263 ··· 1281 1266 1282 1267 static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter) 1283 1268 { 1269 + struct e1000_hw *hw = &adapter->hw; 1284 1270 u32 ctrl_reg = 0; 1285 1271 u32 stat_reg = 0; 1286 1272 1287 - adapter->hw.autoneg = false; 1273 + hw->autoneg = false; 1288 1274 1289 - if (adapter->hw.phy_type == e1000_phy_m88) { 1275 + if (hw->phy_type == e1000_phy_m88) { 1290 1276 /* Auto-MDI/MDIX Off */ 1291 - e1000_write_phy_reg(&adapter->hw, 1277 + e1000_write_phy_reg(hw, 1292 1278 M88E1000_PHY_SPEC_CTRL, 0x0808); 1293 1279 /* reset to update Auto-MDI/MDIX */ 1294 - e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x9140); 1280 + e1000_write_phy_reg(hw, PHY_CTRL, 0x9140); 1295 1281 /* autoneg off */ 1296 - e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x8140); 1297 - } else if (adapter->hw.phy_type == e1000_phy_gg82563) 1298 - e1000_write_phy_reg(&adapter->hw, 1282 + e1000_write_phy_reg(hw, PHY_CTRL, 0x8140); 1283 + } else if (hw->phy_type == e1000_phy_gg82563) 1284 + e1000_write_phy_reg(hw, 1299 1285 GG82563_PHY_KMRN_MODE_CTRL, 1300 1286 0x1CC); 1301 1287 1302 - ctrl_reg = E1000_READ_REG(&adapter->hw, CTRL); 1288 + ctrl_reg = er32(CTRL); 1303 1289 1304 - if (adapter->hw.phy_type == e1000_phy_ife) { 1290 + if (hw->phy_type == e1000_phy_ife) { 1305 1291 /* force 100, set loopback */ 1306 - e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x6100); 1292 + e1000_write_phy_reg(hw, PHY_CTRL, 0x6100); 1307 1293 1308 1294 /* Now set up the MAC to the same speed/duplex as the PHY. */ 1309 1295 ctrl_reg &= ~E1000_CTRL_SPD_SEL; /* Clear the speed sel bits */ ··· 1314 1298 E1000_CTRL_FD); /* Force Duplex to FULL */ 1315 1299 } else { 1316 1300 /* force 1000, set loopback */ 1317 - e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x4140); 1301 + e1000_write_phy_reg(hw, PHY_CTRL, 0x4140); 1318 1302 1319 1303 /* Now set up the MAC to the same speed/duplex as the PHY. */ 1320 - ctrl_reg = E1000_READ_REG(&adapter->hw, CTRL); 1304 + ctrl_reg = er32(CTRL); 1321 1305 ctrl_reg &= ~E1000_CTRL_SPD_SEL; /* Clear the speed sel bits */ 1322 1306 ctrl_reg |= (E1000_CTRL_FRCSPD | /* Set the Force Speed Bit */ 1323 1307 E1000_CTRL_FRCDPX | /* Set the Force Duplex Bit */ ··· 1325 1309 E1000_CTRL_FD); /* Force Duplex to FULL */ 1326 1310 } 1327 1311 1328 - if (adapter->hw.media_type == e1000_media_type_copper && 1329 - adapter->hw.phy_type == e1000_phy_m88) 1312 + if (hw->media_type == e1000_media_type_copper && 1313 + hw->phy_type == e1000_phy_m88) 1330 1314 ctrl_reg |= E1000_CTRL_ILOS; /* Invert Loss of Signal */ 1331 1315 else { 1332 1316 /* Set the ILOS bit on the fiber Nic is half 1333 1317 * duplex link is detected. */ 1334 - stat_reg = E1000_READ_REG(&adapter->hw, STATUS); 1318 + stat_reg = er32(STATUS); 1335 1319 if ((stat_reg & E1000_STATUS_FD) == 0) 1336 1320 ctrl_reg |= (E1000_CTRL_ILOS | E1000_CTRL_SLU); 1337 1321 } 1338 1322 1339 - E1000_WRITE_REG(&adapter->hw, CTRL, ctrl_reg); 1323 + ew32(CTRL, ctrl_reg); 1340 1324 1341 1325 /* Disable the receiver on the PHY so when a cable is plugged in, the 1342 1326 * PHY does not begin to autoneg when a cable is reconnected to the NIC. 1343 1327 */ 1344 - if (adapter->hw.phy_type == e1000_phy_m88) 1328 + if (hw->phy_type == e1000_phy_m88) 1345 1329 e1000_phy_disable_receiver(adapter); 1346 1330 1347 1331 udelay(500); ··· 1351 1335 1352 1336 static int e1000_set_phy_loopback(struct e1000_adapter *adapter) 1353 1337 { 1338 + struct e1000_hw *hw = &adapter->hw; 1354 1339 u16 phy_reg = 0; 1355 1340 u16 count = 0; 1356 1341 1357 - switch (adapter->hw.mac_type) { 1342 + switch (hw->mac_type) { 1358 1343 case e1000_82543: 1359 - if (adapter->hw.media_type == e1000_media_type_copper) { 1344 + if (hw->media_type == e1000_media_type_copper) { 1360 1345 /* Attempt to setup Loopback mode on Non-integrated PHY. 1361 1346 * Some PHY registers get corrupted at random, so 1362 1347 * attempt this 10 times. ··· 1391 1374 /* Default PHY loopback work is to read the MII 1392 1375 * control register and assert bit 14 (loopback mode). 1393 1376 */ 1394 - e1000_read_phy_reg(&adapter->hw, PHY_CTRL, &phy_reg); 1377 + e1000_read_phy_reg(hw, PHY_CTRL, &phy_reg); 1395 1378 phy_reg |= MII_CR_LOOPBACK; 1396 - e1000_write_phy_reg(&adapter->hw, PHY_CTRL, phy_reg); 1379 + e1000_write_phy_reg(hw, PHY_CTRL, phy_reg); 1397 1380 return 0; 1398 1381 break; 1399 1382 } ··· 1419 1402 case e1000_82572: 1420 1403 #define E1000_SERDES_LB_ON 0x410 1421 1404 e1000_set_phy_loopback(adapter); 1422 - E1000_WRITE_REG(hw, SCTL, E1000_SERDES_LB_ON); 1405 + ew32(SCTL, E1000_SERDES_LB_ON); 1423 1406 msleep(10); 1424 1407 return 0; 1425 1408 break; 1426 1409 default: 1427 - rctl = E1000_READ_REG(hw, RCTL); 1410 + rctl = er32(RCTL); 1428 1411 rctl |= E1000_RCTL_LBM_TCVR; 1429 - E1000_WRITE_REG(hw, RCTL, rctl); 1412 + ew32(RCTL, rctl); 1430 1413 return 0; 1431 1414 } 1432 1415 } else if (hw->media_type == e1000_media_type_copper) ··· 1441 1424 u32 rctl; 1442 1425 u16 phy_reg; 1443 1426 1444 - rctl = E1000_READ_REG(hw, RCTL); 1427 + rctl = er32(RCTL); 1445 1428 rctl &= ~(E1000_RCTL_LBM_TCVR | E1000_RCTL_LBM_MAC); 1446 - E1000_WRITE_REG(hw, RCTL, rctl); 1429 + ew32(RCTL, rctl); 1447 1430 1448 1431 switch (hw->mac_type) { 1449 1432 case e1000_82571: ··· 1451 1434 if (hw->media_type == e1000_media_type_fiber || 1452 1435 hw->media_type == e1000_media_type_internal_serdes) { 1453 1436 #define E1000_SERDES_LB_OFF 0x400 1454 - E1000_WRITE_REG(hw, SCTL, E1000_SERDES_LB_OFF); 1437 + ew32(SCTL, E1000_SERDES_LB_OFF); 1455 1438 msleep(10); 1456 1439 break; 1457 1440 } ··· 1501 1484 1502 1485 static int e1000_run_loopback_test(struct e1000_adapter *adapter) 1503 1486 { 1487 + struct e1000_hw *hw = &adapter->hw; 1504 1488 struct e1000_tx_ring *txdr = &adapter->test_tx_ring; 1505 1489 struct e1000_rx_ring *rxdr = &adapter->test_rx_ring; 1506 1490 struct pci_dev *pdev = adapter->pdev; 1507 1491 int i, j, k, l, lc, good_cnt, ret_val=0; 1508 1492 unsigned long time; 1509 1493 1510 - E1000_WRITE_REG(&adapter->hw, RDT, rxdr->count - 1); 1494 + ew32(RDT, rxdr->count - 1); 1511 1495 1512 1496 /* Calculate the loop count based on the largest descriptor ring 1513 1497 * The idea is to wrap the largest ring a number of times using 64 ··· 1531 1513 PCI_DMA_TODEVICE); 1532 1514 if (unlikely(++k == txdr->count)) k = 0; 1533 1515 } 1534 - E1000_WRITE_REG(&adapter->hw, TDT, k); 1516 + ew32(TDT, k); 1535 1517 msleep(200); 1536 1518 time = jiffies; /* set the start time for the receive */ 1537 1519 good_cnt = 0; ··· 1566 1548 1567 1549 static int e1000_loopback_test(struct e1000_adapter *adapter, u64 *data) 1568 1550 { 1551 + struct e1000_hw *hw = &adapter->hw; 1552 + 1569 1553 /* PHY loopback cannot be performed if SoL/IDER 1570 1554 * sessions are active */ 1571 - if (e1000_check_phy_reset_block(&adapter->hw)) { 1555 + if (e1000_check_phy_reset_block(hw)) { 1572 1556 DPRINTK(DRV, ERR, "Cannot do PHY loopback test " 1573 1557 "when SoL/IDER is active.\n"); 1574 1558 *data = 0; ··· 1592 1572 1593 1573 static int e1000_link_test(struct e1000_adapter *adapter, u64 *data) 1594 1574 { 1575 + struct e1000_hw *hw = &adapter->hw; 1595 1576 *data = 0; 1596 - if (adapter->hw.media_type == e1000_media_type_internal_serdes) { 1577 + if (hw->media_type == e1000_media_type_internal_serdes) { 1597 1578 int i = 0; 1598 - adapter->hw.serdes_link_down = true; 1579 + hw->serdes_link_down = true; 1599 1580 1600 1581 /* On some blade server designs, link establishment 1601 1582 * could take as long as 2-3 minutes */ 1602 1583 do { 1603 - e1000_check_for_link(&adapter->hw); 1604 - if (!adapter->hw.serdes_link_down) 1584 + e1000_check_for_link(hw); 1585 + if (!hw->serdes_link_down) 1605 1586 return *data; 1606 1587 msleep(20); 1607 1588 } while (i++ < 3750); 1608 1589 1609 1590 *data = 1; 1610 1591 } else { 1611 - e1000_check_for_link(&adapter->hw); 1612 - if (adapter->hw.autoneg) /* if auto_neg is set wait for it */ 1592 + e1000_check_for_link(hw); 1593 + if (hw->autoneg) /* if auto_neg is set wait for it */ 1613 1594 msleep(4000); 1614 1595 1615 - if (!(E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_LU)) { 1596 + if (!(er32(STATUS) & E1000_STATUS_LU)) { 1616 1597 *data = 1; 1617 1598 } 1618 1599 } ··· 1636 1615 struct ethtool_test *eth_test, u64 *data) 1637 1616 { 1638 1617 struct e1000_adapter *adapter = netdev_priv(netdev); 1618 + struct e1000_hw *hw = &adapter->hw; 1639 1619 bool if_running = netif_running(netdev); 1640 1620 1641 1621 set_bit(__E1000_TESTING, &adapter->flags); ··· 1644 1622 /* Offline tests */ 1645 1623 1646 1624 /* save speed, duplex, autoneg settings */ 1647 - u16 autoneg_advertised = adapter->hw.autoneg_advertised; 1648 - u8 forced_speed_duplex = adapter->hw.forced_speed_duplex; 1649 - u8 autoneg = adapter->hw.autoneg; 1625 + u16 autoneg_advertised = hw->autoneg_advertised; 1626 + u8 forced_speed_duplex = hw->forced_speed_duplex; 1627 + u8 autoneg = hw->autoneg; 1650 1628 1651 1629 DPRINTK(HW, INFO, "offline testing starting\n"); 1652 1630 ··· 1679 1657 eth_test->flags |= ETH_TEST_FL_FAILED; 1680 1658 1681 1659 /* restore speed, duplex, autoneg settings */ 1682 - adapter->hw.autoneg_advertised = autoneg_advertised; 1683 - adapter->hw.forced_speed_duplex = forced_speed_duplex; 1684 - adapter->hw.autoneg = autoneg; 1660 + hw->autoneg_advertised = autoneg_advertised; 1661 + hw->forced_speed_duplex = forced_speed_duplex; 1662 + hw->autoneg = autoneg; 1685 1663 1686 1664 e1000_reset(adapter); 1687 1665 clear_bit(__E1000_TESTING, &adapter->flags); ··· 1730 1708 case E1000_DEV_ID_82571EB_SERDES: 1731 1709 case E1000_DEV_ID_82571EB_COPPER: 1732 1710 /* Wake events not supported on port B */ 1733 - if (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1) { 1711 + if (er32(STATUS) & E1000_STATUS_FUNC_1) { 1734 1712 wol->supported = 0; 1735 1713 break; 1736 1714 } ··· 1754 1732 /* dual port cards only support WoL on port A from now on 1755 1733 * unless it was enabled in the eeprom for port B 1756 1734 * so exclude FUNC_1 ports from having WoL enabled */ 1757 - if (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1 && 1735 + if (er32(STATUS) & E1000_STATUS_FUNC_1 && 1758 1736 !adapter->eeprom_wol) { 1759 1737 wol->supported = 0; 1760 1738 break; ··· 1770 1748 struct ethtool_wolinfo *wol) 1771 1749 { 1772 1750 struct e1000_adapter *adapter = netdev_priv(netdev); 1751 + struct e1000_hw *hw = &adapter->hw; 1773 1752 1774 1753 wol->supported = WAKE_UCAST | WAKE_MCAST | 1775 1754 WAKE_BCAST | WAKE_MAGIC; ··· 1782 1759 return; 1783 1760 1784 1761 /* apply any specific unsupported masks here */ 1785 - switch (adapter->hw.device_id) { 1762 + switch (hw->device_id) { 1786 1763 case E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3: 1787 1764 /* KSP3 does not suppport UCAST wake-ups */ 1788 1765 wol->supported &= ~WAKE_UCAST; ··· 1854 1831 static void e1000_led_blink_callback(unsigned long data) 1855 1832 { 1856 1833 struct e1000_adapter *adapter = (struct e1000_adapter *) data; 1834 + struct e1000_hw *hw = &adapter->hw; 1857 1835 1858 1836 if (test_and_change_bit(E1000_LED_ON, &adapter->led_status)) 1859 - e1000_led_off(&adapter->hw); 1837 + e1000_led_off(hw); 1860 1838 else 1861 - e1000_led_on(&adapter->hw); 1839 + e1000_led_on(hw); 1862 1840 1863 1841 mod_timer(&adapter->blink_timer, jiffies + E1000_ID_INTERVAL); 1864 1842 } ··· 1867 1843 static int e1000_phys_id(struct net_device *netdev, u32 data) 1868 1844 { 1869 1845 struct e1000_adapter *adapter = netdev_priv(netdev); 1846 + struct e1000_hw *hw = &adapter->hw; 1870 1847 1871 1848 if (!data) 1872 1849 data = INT_MAX; 1873 1850 1874 - if (adapter->hw.mac_type < e1000_82571) { 1851 + if (hw->mac_type < e1000_82571) { 1875 1852 if (!adapter->blink_timer.function) { 1876 1853 init_timer(&adapter->blink_timer); 1877 1854 adapter->blink_timer.function = e1000_led_blink_callback; 1878 1855 adapter->blink_timer.data = (unsigned long) adapter; 1879 1856 } 1880 - e1000_setup_led(&adapter->hw); 1857 + e1000_setup_led(hw); 1881 1858 mod_timer(&adapter->blink_timer, jiffies); 1882 1859 msleep_interruptible(data * 1000); 1883 1860 del_timer_sync(&adapter->blink_timer); 1884 - } else if (adapter->hw.phy_type == e1000_phy_ife) { 1861 + } else if (hw->phy_type == e1000_phy_ife) { 1885 1862 if (!adapter->blink_timer.function) { 1886 1863 init_timer(&adapter->blink_timer); 1887 1864 adapter->blink_timer.function = e1000_led_blink_callback; ··· 1893 1868 del_timer_sync(&adapter->blink_timer); 1894 1869 e1000_write_phy_reg(&(adapter->hw), IFE_PHY_SPECIAL_CONTROL_LED, 0); 1895 1870 } else { 1896 - e1000_blink_led_start(&adapter->hw); 1871 + e1000_blink_led_start(hw); 1897 1872 msleep_interruptible(data * 1000); 1898 1873 } 1899 1874 1900 - e1000_led_off(&adapter->hw); 1875 + e1000_led_off(hw); 1901 1876 clear_bit(E1000_LED_ON, &adapter->led_status); 1902 - e1000_cleanup_led(&adapter->hw); 1877 + e1000_cleanup_led(hw); 1903 1878 1904 1879 return 0; 1905 1880 }
+379 -379
drivers/net/e1000/e1000_hw.c
··· 520 520 hw->media_type = e1000_media_type_copper; 521 521 break; 522 522 default: 523 - status = E1000_READ_REG(hw, STATUS); 523 + status = er32(STATUS); 524 524 if (status & E1000_STATUS_TBIMODE) { 525 525 hw->media_type = e1000_media_type_fiber; 526 526 /* tbi_compatibility not valid on fiber */ ··· 568 568 569 569 /* Clear interrupt mask to stop board from generating interrupts */ 570 570 DEBUGOUT("Masking off all interrupts\n"); 571 - E1000_WRITE_REG(hw, IMC, 0xffffffff); 571 + ew32(IMC, 0xffffffff); 572 572 573 573 /* Disable the Transmit and Receive units. Then delay to allow 574 574 * any pending transactions to complete before we hit the MAC with 575 575 * the global reset. 576 576 */ 577 - E1000_WRITE_REG(hw, RCTL, 0); 578 - E1000_WRITE_REG(hw, TCTL, E1000_TCTL_PSP); 579 - E1000_WRITE_FLUSH(hw); 577 + ew32(RCTL, 0); 578 + ew32(TCTL, E1000_TCTL_PSP); 579 + E1000_WRITE_FLUSH(); 580 580 581 581 /* The tbi_compatibility_on Flag must be cleared when Rctl is cleared. */ 582 582 hw->tbi_compatibility_on = false; ··· 586 586 */ 587 587 msleep(10); 588 588 589 - ctrl = E1000_READ_REG(hw, CTRL); 589 + ctrl = er32(CTRL); 590 590 591 591 /* Must reset the PHY before resetting the MAC */ 592 592 if ((hw->mac_type == e1000_82541) || (hw->mac_type == e1000_82547)) { 593 - E1000_WRITE_REG(hw, CTRL, (ctrl | E1000_CTRL_PHY_RST)); 593 + ew32(CTRL, (ctrl | E1000_CTRL_PHY_RST)); 594 594 msleep(5); 595 595 } 596 596 ··· 599 599 if (hw->mac_type == e1000_82573) { 600 600 timeout = 10; 601 601 602 - extcnf_ctrl = E1000_READ_REG(hw, EXTCNF_CTRL); 602 + extcnf_ctrl = er32(EXTCNF_CTRL); 603 603 extcnf_ctrl |= E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP; 604 604 605 605 do { 606 - E1000_WRITE_REG(hw, EXTCNF_CTRL, extcnf_ctrl); 607 - extcnf_ctrl = E1000_READ_REG(hw, EXTCNF_CTRL); 606 + ew32(EXTCNF_CTRL, extcnf_ctrl); 607 + extcnf_ctrl = er32(EXTCNF_CTRL); 608 608 609 609 if (extcnf_ctrl & E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP) 610 610 break; ··· 619 619 /* Workaround for ICH8 bit corruption issue in FIFO memory */ 620 620 if (hw->mac_type == e1000_ich8lan) { 621 621 /* Set Tx and Rx buffer allocation to 8k apiece. */ 622 - E1000_WRITE_REG(hw, PBA, E1000_PBA_8K); 622 + ew32(PBA, E1000_PBA_8K); 623 623 /* Set Packet Buffer Size to 16k. */ 624 - E1000_WRITE_REG(hw, PBS, E1000_PBS_16K); 624 + ew32(PBS, E1000_PBS_16K); 625 625 } 626 626 627 627 /* Issue a global reset to the MAC. This will reset the chip's ··· 645 645 case e1000_82545_rev_3: 646 646 case e1000_82546_rev_3: 647 647 /* Reset is performed on a shadow of the control register */ 648 - E1000_WRITE_REG(hw, CTRL_DUP, (ctrl | E1000_CTRL_RST)); 648 + ew32(CTRL_DUP, (ctrl | E1000_CTRL_RST)); 649 649 break; 650 650 case e1000_ich8lan: 651 651 if (!hw->phy_reset_disable && ··· 658 658 } 659 659 660 660 e1000_get_software_flag(hw); 661 - E1000_WRITE_REG(hw, CTRL, (ctrl | E1000_CTRL_RST)); 661 + ew32(CTRL, (ctrl | E1000_CTRL_RST)); 662 662 msleep(5); 663 663 break; 664 664 default: 665 - E1000_WRITE_REG(hw, CTRL, (ctrl | E1000_CTRL_RST)); 665 + ew32(CTRL, (ctrl | E1000_CTRL_RST)); 666 666 break; 667 667 } 668 668 ··· 677 677 case e1000_82544: 678 678 /* Wait for reset to complete */ 679 679 udelay(10); 680 - ctrl_ext = E1000_READ_REG(hw, CTRL_EXT); 680 + ctrl_ext = er32(CTRL_EXT); 681 681 ctrl_ext |= E1000_CTRL_EXT_EE_RST; 682 - E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext); 683 - E1000_WRITE_FLUSH(hw); 682 + ew32(CTRL_EXT, ctrl_ext); 683 + E1000_WRITE_FLUSH(); 684 684 /* Wait for EEPROM reload */ 685 685 msleep(2); 686 686 break; ··· 694 694 case e1000_82573: 695 695 if (!e1000_is_onboard_nvm_eeprom(hw)) { 696 696 udelay(10); 697 - ctrl_ext = E1000_READ_REG(hw, CTRL_EXT); 697 + ctrl_ext = er32(CTRL_EXT); 698 698 ctrl_ext |= E1000_CTRL_EXT_EE_RST; 699 - E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext); 700 - E1000_WRITE_FLUSH(hw); 699 + ew32(CTRL_EXT, ctrl_ext); 700 + E1000_WRITE_FLUSH(); 701 701 } 702 702 /* fall through */ 703 703 default: ··· 710 710 711 711 /* Disable HW ARPs on ASF enabled adapters */ 712 712 if (hw->mac_type >= e1000_82540 && hw->mac_type <= e1000_82547_rev_2) { 713 - manc = E1000_READ_REG(hw, MANC); 713 + manc = er32(MANC); 714 714 manc &= ~(E1000_MANC_ARP_EN); 715 - E1000_WRITE_REG(hw, MANC, manc); 715 + ew32(MANC, manc); 716 716 } 717 717 718 718 if ((hw->mac_type == e1000_82541) || (hw->mac_type == e1000_82547)) { 719 719 e1000_phy_init_script(hw); 720 720 721 721 /* Configure activity LED after PHY reset */ 722 - led_ctrl = E1000_READ_REG(hw, LEDCTL); 722 + led_ctrl = er32(LEDCTL); 723 723 led_ctrl &= IGP_ACTIVITY_LED_MASK; 724 724 led_ctrl |= (IGP_ACTIVITY_LED_ENABLE | IGP_LED3_MODE); 725 - E1000_WRITE_REG(hw, LEDCTL, led_ctrl); 725 + ew32(LEDCTL, led_ctrl); 726 726 } 727 727 728 728 /* Clear interrupt mask to stop board from generating interrupts */ 729 729 DEBUGOUT("Masking off all interrupts\n"); 730 - E1000_WRITE_REG(hw, IMC, 0xffffffff); 730 + ew32(IMC, 0xffffffff); 731 731 732 732 /* Clear any pending interrupt events. */ 733 - icr = E1000_READ_REG(hw, ICR); 733 + icr = er32(ICR); 734 734 735 735 /* If MWI was previously enabled, reenable it. */ 736 736 if (hw->mac_type == e1000_82542_rev2_0) { ··· 739 739 } 740 740 741 741 if (hw->mac_type == e1000_ich8lan) { 742 - u32 kab = E1000_READ_REG(hw, KABGTXD); 742 + u32 kab = er32(KABGTXD); 743 743 kab |= E1000_KABGTXD_BGSQLBIAS; 744 - E1000_WRITE_REG(hw, KABGTXD, kab); 744 + ew32(KABGTXD, kab); 745 745 } 746 746 747 747 return E1000_SUCCESS; ··· 766 766 u32 reg_txdctl, reg_txdctl1; 767 767 768 768 /* link autonegotiation/sync workarounds */ 769 - reg_tarc0 = E1000_READ_REG(hw, TARC0); 769 + reg_tarc0 = er32(TARC0); 770 770 reg_tarc0 &= ~((1 << 30)|(1 << 29)|(1 << 28)|(1 << 27)); 771 771 772 772 /* Enable not-done TX descriptor counting */ 773 - reg_txdctl = E1000_READ_REG(hw, TXDCTL); 773 + reg_txdctl = er32(TXDCTL); 774 774 reg_txdctl |= E1000_TXDCTL_COUNT_DESC; 775 - E1000_WRITE_REG(hw, TXDCTL, reg_txdctl); 776 - reg_txdctl1 = E1000_READ_REG(hw, TXDCTL1); 775 + ew32(TXDCTL, reg_txdctl); 776 + reg_txdctl1 = er32(TXDCTL1); 777 777 reg_txdctl1 |= E1000_TXDCTL_COUNT_DESC; 778 - E1000_WRITE_REG(hw, TXDCTL1, reg_txdctl1); 778 + ew32(TXDCTL1, reg_txdctl1); 779 779 780 780 switch (hw->mac_type) { 781 781 case e1000_82571: 782 782 case e1000_82572: 783 783 /* Clear PHY TX compatible mode bits */ 784 - reg_tarc1 = E1000_READ_REG(hw, TARC1); 784 + reg_tarc1 = er32(TARC1); 785 785 reg_tarc1 &= ~((1 << 30)|(1 << 29)); 786 786 787 787 /* link autonegotiation/sync workarounds */ ··· 791 791 reg_tarc1 |= ((1 << 26)|(1 << 25)|(1 << 24)); 792 792 793 793 /* Multiple read bit is reversed polarity */ 794 - reg_tctl = E1000_READ_REG(hw, TCTL); 794 + reg_tctl = er32(TCTL); 795 795 if (reg_tctl & E1000_TCTL_MULR) 796 796 reg_tarc1 &= ~(1 << 28); 797 797 else 798 798 reg_tarc1 |= (1 << 28); 799 799 800 - E1000_WRITE_REG(hw, TARC1, reg_tarc1); 800 + ew32(TARC1, reg_tarc1); 801 801 break; 802 802 case e1000_82573: 803 - reg_ctrl_ext = E1000_READ_REG(hw, CTRL_EXT); 803 + reg_ctrl_ext = er32(CTRL_EXT); 804 804 reg_ctrl_ext &= ~(1 << 23); 805 805 reg_ctrl_ext |= (1 << 22); 806 806 807 807 /* TX byte count fix */ 808 - reg_ctrl = E1000_READ_REG(hw, CTRL); 808 + reg_ctrl = er32(CTRL); 809 809 reg_ctrl &= ~(1 << 29); 810 810 811 - E1000_WRITE_REG(hw, CTRL_EXT, reg_ctrl_ext); 812 - E1000_WRITE_REG(hw, CTRL, reg_ctrl); 811 + ew32(CTRL_EXT, reg_ctrl_ext); 812 + ew32(CTRL, reg_ctrl); 813 813 break; 814 814 case e1000_80003es2lan: 815 815 /* improve small packet performace for fiber/serdes */ ··· 819 819 } 820 820 821 821 /* Multiple read bit is reversed polarity */ 822 - reg_tctl = E1000_READ_REG(hw, TCTL); 823 - reg_tarc1 = E1000_READ_REG(hw, TARC1); 822 + reg_tctl = er32(TCTL); 823 + reg_tarc1 = er32(TARC1); 824 824 if (reg_tctl & E1000_TCTL_MULR) 825 825 reg_tarc1 &= ~(1 << 28); 826 826 else 827 827 reg_tarc1 |= (1 << 28); 828 828 829 - E1000_WRITE_REG(hw, TARC1, reg_tarc1); 829 + ew32(TARC1, reg_tarc1); 830 830 break; 831 831 case e1000_ich8lan: 832 832 /* Reduce concurrent DMA requests to 3 from 4 */ ··· 835 835 (hw->device_id != E1000_DEV_ID_ICH8_IGP_M))) 836 836 reg_tarc0 |= ((1 << 29)|(1 << 28)); 837 837 838 - reg_ctrl_ext = E1000_READ_REG(hw, CTRL_EXT); 838 + reg_ctrl_ext = er32(CTRL_EXT); 839 839 reg_ctrl_ext |= (1 << 22); 840 - E1000_WRITE_REG(hw, CTRL_EXT, reg_ctrl_ext); 840 + ew32(CTRL_EXT, reg_ctrl_ext); 841 841 842 842 /* workaround TX hang with TSO=on */ 843 843 reg_tarc0 |= ((1 << 27)|(1 << 26)|(1 << 24)|(1 << 23)); 844 844 845 845 /* Multiple read bit is reversed polarity */ 846 - reg_tctl = E1000_READ_REG(hw, TCTL); 847 - reg_tarc1 = E1000_READ_REG(hw, TARC1); 846 + reg_tctl = er32(TCTL); 847 + reg_tarc1 = er32(TARC1); 848 848 if (reg_tctl & E1000_TCTL_MULR) 849 849 reg_tarc1 &= ~(1 << 28); 850 850 else ··· 853 853 /* workaround TX hang with TSO=on */ 854 854 reg_tarc1 |= ((1 << 30)|(1 << 26)|(1 << 24)); 855 855 856 - E1000_WRITE_REG(hw, TARC1, reg_tarc1); 856 + ew32(TARC1, reg_tarc1); 857 857 break; 858 858 default: 859 859 break; 860 860 } 861 861 862 - E1000_WRITE_REG(hw, TARC0, reg_tarc0); 862 + ew32(TARC0, reg_tarc0); 863 863 } 864 864 } 865 865 ··· 890 890 ((hw->revision_id < 3) || 891 891 ((hw->device_id != E1000_DEV_ID_ICH8_IGP_M_AMT) && 892 892 (hw->device_id != E1000_DEV_ID_ICH8_IGP_M)))) { 893 - reg_data = E1000_READ_REG(hw, STATUS); 893 + reg_data = er32(STATUS); 894 894 reg_data &= ~0x80000000; 895 - E1000_WRITE_REG(hw, STATUS, reg_data); 895 + ew32(STATUS, reg_data); 896 896 } 897 897 898 898 /* Initialize Identification LED */ ··· 913 913 /* VET hardcoded to standard value and VFTA removed in ICH8 LAN */ 914 914 if (hw->mac_type != e1000_ich8lan) { 915 915 if (hw->mac_type < e1000_82545_rev_3) 916 - E1000_WRITE_REG(hw, VET, 0); 916 + ew32(VET, 0); 917 917 e1000_clear_vfta(hw); 918 918 } 919 919 ··· 921 921 if (hw->mac_type == e1000_82542_rev2_0) { 922 922 DEBUGOUT("Disabling MWI on 82542 rev 2.0\n"); 923 923 e1000_pci_clear_mwi(hw); 924 - E1000_WRITE_REG(hw, RCTL, E1000_RCTL_RST); 925 - E1000_WRITE_FLUSH(hw); 924 + ew32(RCTL, E1000_RCTL_RST); 925 + E1000_WRITE_FLUSH(); 926 926 msleep(5); 927 927 } 928 928 ··· 933 933 934 934 /* For 82542 (rev 2.0), take the receiver out of reset and enable MWI */ 935 935 if (hw->mac_type == e1000_82542_rev2_0) { 936 - E1000_WRITE_REG(hw, RCTL, 0); 937 - E1000_WRITE_FLUSH(hw); 936 + ew32(RCTL, 0); 937 + E1000_WRITE_FLUSH(); 938 938 msleep(1); 939 939 if (hw->pci_cmd_word & PCI_COMMAND_INVALIDATE) 940 940 e1000_pci_set_mwi(hw); ··· 949 949 E1000_WRITE_REG_ARRAY(hw, MTA, i, 0); 950 950 /* use write flush to prevent Memory Write Block (MWB) from 951 951 * occuring when accessing our register space */ 952 - E1000_WRITE_FLUSH(hw); 952 + E1000_WRITE_FLUSH(); 953 953 } 954 954 955 955 /* Set the PCI priority bit correctly in the CTRL register. This ··· 958 958 * 82542 and 82543 silicon. 959 959 */ 960 960 if (hw->dma_fairness && hw->mac_type <= e1000_82543) { 961 - ctrl = E1000_READ_REG(hw, CTRL); 962 - E1000_WRITE_REG(hw, CTRL, ctrl | E1000_CTRL_PRIOR); 961 + ctrl = er32(CTRL); 962 + ew32(CTRL, ctrl | E1000_CTRL_PRIOR); 963 963 } 964 964 965 965 switch (hw->mac_type) { ··· 982 982 983 983 /* Set the transmit descriptor write-back policy */ 984 984 if (hw->mac_type > e1000_82544) { 985 - ctrl = E1000_READ_REG(hw, TXDCTL); 985 + ctrl = er32(TXDCTL); 986 986 ctrl = (ctrl & ~E1000_TXDCTL_WTHRESH) | E1000_TXDCTL_FULL_TX_DESC_WB; 987 - E1000_WRITE_REG(hw, TXDCTL, ctrl); 987 + ew32(TXDCTL, ctrl); 988 988 } 989 989 990 990 if (hw->mac_type == e1000_82573) { ··· 996 996 break; 997 997 case e1000_80003es2lan: 998 998 /* Enable retransmit on late collisions */ 999 - reg_data = E1000_READ_REG(hw, TCTL); 999 + reg_data = er32(TCTL); 1000 1000 reg_data |= E1000_TCTL_RTLC; 1001 - E1000_WRITE_REG(hw, TCTL, reg_data); 1001 + ew32(TCTL, reg_data); 1002 1002 1003 1003 /* Configure Gigabit Carry Extend Padding */ 1004 - reg_data = E1000_READ_REG(hw, TCTL_EXT); 1004 + reg_data = er32(TCTL_EXT); 1005 1005 reg_data &= ~E1000_TCTL_EXT_GCEX_MASK; 1006 1006 reg_data |= DEFAULT_80003ES2LAN_TCTL_EXT_GCEX; 1007 - E1000_WRITE_REG(hw, TCTL_EXT, reg_data); 1007 + ew32(TCTL_EXT, reg_data); 1008 1008 1009 1009 /* Configure Transmit Inter-Packet Gap */ 1010 - reg_data = E1000_READ_REG(hw, TIPG); 1010 + reg_data = er32(TIPG); 1011 1011 reg_data &= ~E1000_TIPG_IPGT_MASK; 1012 1012 reg_data |= DEFAULT_80003ES2LAN_TIPG_IPGT_1000; 1013 - E1000_WRITE_REG(hw, TIPG, reg_data); 1013 + ew32(TIPG, reg_data); 1014 1014 1015 1015 reg_data = E1000_READ_REG_ARRAY(hw, FFLT, 0x0001); 1016 1016 reg_data &= ~0x00100000; ··· 1019 1019 case e1000_82571: 1020 1020 case e1000_82572: 1021 1021 case e1000_ich8lan: 1022 - ctrl = E1000_READ_REG(hw, TXDCTL1); 1022 + ctrl = er32(TXDCTL1); 1023 1023 ctrl = (ctrl & ~E1000_TXDCTL_WTHRESH) | E1000_TXDCTL_FULL_TX_DESC_WB; 1024 - E1000_WRITE_REG(hw, TXDCTL1, ctrl); 1024 + ew32(TXDCTL1, ctrl); 1025 1025 break; 1026 1026 } 1027 1027 1028 1028 1029 1029 if (hw->mac_type == e1000_82573) { 1030 - u32 gcr = E1000_READ_REG(hw, GCR); 1030 + u32 gcr = er32(GCR); 1031 1031 gcr |= E1000_GCR_L1_ACT_WITHOUT_L0S_RX; 1032 - E1000_WRITE_REG(hw, GCR, gcr); 1032 + ew32(GCR, gcr); 1033 1033 } 1034 1034 1035 1035 /* Clear all of the statistics registers (clear on read). It is ··· 1046 1046 1047 1047 if (hw->device_id == E1000_DEV_ID_82546GB_QUAD_COPPER || 1048 1048 hw->device_id == E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3) { 1049 - ctrl_ext = E1000_READ_REG(hw, CTRL_EXT); 1049 + ctrl_ext = er32(CTRL_EXT); 1050 1050 /* Relaxed ordering must be disabled to avoid a parity 1051 1051 * error crash in a PCI slot. */ 1052 1052 ctrl_ext |= E1000_CTRL_EXT_RO_DIS; 1053 - E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext); 1053 + ew32(CTRL_EXT, ctrl_ext); 1054 1054 } 1055 1055 1056 1056 return ret_val; ··· 1181 1181 } 1182 1182 ctrl_ext = ((eeprom_data & EEPROM_WORD0F_SWPDIO_EXT) << 1183 1183 SWDPIO__EXT_SHIFT); 1184 - E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext); 1184 + ew32(CTRL_EXT, ctrl_ext); 1185 1185 } 1186 1186 1187 1187 /* Call the necessary subroutine to configure the link. */ ··· 1198 1198 1199 1199 /* FCAL/H and FCT are hardcoded to standard values in e1000_ich8lan. */ 1200 1200 if (hw->mac_type != e1000_ich8lan) { 1201 - E1000_WRITE_REG(hw, FCT, FLOW_CONTROL_TYPE); 1202 - E1000_WRITE_REG(hw, FCAH, FLOW_CONTROL_ADDRESS_HIGH); 1203 - E1000_WRITE_REG(hw, FCAL, FLOW_CONTROL_ADDRESS_LOW); 1201 + ew32(FCT, FLOW_CONTROL_TYPE); 1202 + ew32(FCAH, FLOW_CONTROL_ADDRESS_HIGH); 1203 + ew32(FCAL, FLOW_CONTROL_ADDRESS_LOW); 1204 1204 } 1205 1205 1206 - E1000_WRITE_REG(hw, FCTTV, hw->fc_pause_time); 1206 + ew32(FCTTV, hw->fc_pause_time); 1207 1207 1208 1208 /* Set the flow control receive threshold registers. Normally, 1209 1209 * these registers will be set to a default threshold that may be ··· 1212 1212 * registers will be set to 0. 1213 1213 */ 1214 1214 if (!(hw->fc & E1000_FC_TX_PAUSE)) { 1215 - E1000_WRITE_REG(hw, FCRTL, 0); 1216 - E1000_WRITE_REG(hw, FCRTH, 0); 1215 + ew32(FCRTL, 0); 1216 + ew32(FCRTH, 0); 1217 1217 } else { 1218 1218 /* We need to set up the Receive Threshold high and low water marks 1219 1219 * as well as (optionally) enabling the transmission of XON frames. 1220 1220 */ 1221 1221 if (hw->fc_send_xon) { 1222 - E1000_WRITE_REG(hw, FCRTL, (hw->fc_low_water | E1000_FCRTL_XONE)); 1223 - E1000_WRITE_REG(hw, FCRTH, hw->fc_high_water); 1222 + ew32(FCRTL, (hw->fc_low_water | E1000_FCRTL_XONE)); 1223 + ew32(FCRTH, hw->fc_high_water); 1224 1224 } else { 1225 - E1000_WRITE_REG(hw, FCRTL, hw->fc_low_water); 1226 - E1000_WRITE_REG(hw, FCRTH, hw->fc_high_water); 1225 + ew32(FCRTL, hw->fc_low_water); 1226 + ew32(FCRTH, hw->fc_high_water); 1227 1227 } 1228 1228 } 1229 1229 return ret_val; ··· 1255 1255 * loopback mode is disabled during initialization. 1256 1256 */ 1257 1257 if (hw->mac_type == e1000_82571 || hw->mac_type == e1000_82572) 1258 - E1000_WRITE_REG(hw, SCTL, E1000_DISABLE_SERDES_LOOPBACK); 1258 + ew32(SCTL, E1000_DISABLE_SERDES_LOOPBACK); 1259 1259 1260 1260 /* On adapters with a MAC newer than 82544, SWDP 1 will be 1261 1261 * set when the optics detect a signal. On older adapters, it will be ··· 1263 1263 * If we're on serdes media, adjust the output amplitude to value 1264 1264 * set in the EEPROM. 1265 1265 */ 1266 - ctrl = E1000_READ_REG(hw, CTRL); 1266 + ctrl = er32(CTRL); 1267 1267 if (hw->media_type == e1000_media_type_fiber) 1268 1268 signal = (hw->mac_type > e1000_82544) ? E1000_CTRL_SWDPIN1 : 0; 1269 1269 ··· 1334 1334 */ 1335 1335 DEBUGOUT("Auto-negotiation enabled\n"); 1336 1336 1337 - E1000_WRITE_REG(hw, TXCW, txcw); 1338 - E1000_WRITE_REG(hw, CTRL, ctrl); 1339 - E1000_WRITE_FLUSH(hw); 1337 + ew32(TXCW, txcw); 1338 + ew32(CTRL, ctrl); 1339 + E1000_WRITE_FLUSH(); 1340 1340 1341 1341 hw->txcw = txcw; 1342 1342 msleep(1); ··· 1348 1348 * For internal serdes, we just assume a signal is present, then poll. 1349 1349 */ 1350 1350 if (hw->media_type == e1000_media_type_internal_serdes || 1351 - (E1000_READ_REG(hw, CTRL) & E1000_CTRL_SWDPIN1) == signal) { 1351 + (er32(CTRL) & E1000_CTRL_SWDPIN1) == signal) { 1352 1352 DEBUGOUT("Looking for Link\n"); 1353 1353 for (i = 0; i < (LINK_UP_TIMEOUT / 10); i++) { 1354 1354 msleep(10); 1355 - status = E1000_READ_REG(hw, STATUS); 1355 + status = er32(STATUS); 1356 1356 if (status & E1000_STATUS_LU) break; 1357 1357 } 1358 1358 if (i == (LINK_UP_TIMEOUT / 10)) { ··· 1392 1392 1393 1393 DEBUGFUNC("e1000_copper_link_preconfig"); 1394 1394 1395 - ctrl = E1000_READ_REG(hw, CTRL); 1395 + ctrl = er32(CTRL); 1396 1396 /* With 82543, we need to force speed and duplex on the MAC equal to what 1397 1397 * the PHY speed and duplex configuration is. In addition, we need to 1398 1398 * perform a hardware reset on the PHY to take it out of reset. ··· 1400 1400 if (hw->mac_type > e1000_82543) { 1401 1401 ctrl |= E1000_CTRL_SLU; 1402 1402 ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX); 1403 - E1000_WRITE_REG(hw, CTRL, ctrl); 1403 + ew32(CTRL, ctrl); 1404 1404 } else { 1405 1405 ctrl |= (E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX | E1000_CTRL_SLU); 1406 - E1000_WRITE_REG(hw, CTRL, ctrl); 1406 + ew32(CTRL, ctrl); 1407 1407 ret_val = e1000_phy_hw_reset(hw); 1408 1408 if (ret_val) 1409 1409 return ret_val; ··· 1464 1464 msleep(15); 1465 1465 if (hw->mac_type != e1000_ich8lan) { 1466 1466 /* Configure activity LED after PHY reset */ 1467 - led_ctrl = E1000_READ_REG(hw, LEDCTL); 1467 + led_ctrl = er32(LEDCTL); 1468 1468 led_ctrl &= IGP_ACTIVITY_LED_MASK; 1469 1469 led_ctrl |= (IGP_ACTIVITY_LED_ENABLE | IGP_LED3_MODE); 1470 - E1000_WRITE_REG(hw, LEDCTL, led_ctrl); 1470 + ew32(LEDCTL, led_ctrl); 1471 1471 } 1472 1472 1473 1473 /* The NVM settings will configure LPLU in D3 for IGP2 and IGP3 PHYs */ ··· 1680 1680 if (ret_val) 1681 1681 return ret_val; 1682 1682 1683 - reg_data = E1000_READ_REG(hw, CTRL_EXT); 1683 + reg_data = er32(CTRL_EXT); 1684 1684 reg_data &= ~(E1000_CTRL_EXT_LINK_MODE_MASK); 1685 - E1000_WRITE_REG(hw, CTRL_EXT, reg_data); 1685 + ew32(CTRL_EXT, reg_data); 1686 1686 1687 1687 ret_val = e1000_read_phy_reg(hw, GG82563_PHY_PWR_MGMT_CTRL, 1688 1688 &phy_data); ··· 2074 2074 return ret_val; 2075 2075 2076 2076 /* Configure Transmit Inter-Packet Gap */ 2077 - tipg = E1000_READ_REG(hw, TIPG); 2077 + tipg = er32(TIPG); 2078 2078 tipg &= ~E1000_TIPG_IPGT_MASK; 2079 2079 tipg |= DEFAULT_80003ES2LAN_TIPG_IPGT_10_100; 2080 - E1000_WRITE_REG(hw, TIPG, tipg); 2080 + ew32(TIPG, tipg); 2081 2081 2082 2082 ret_val = e1000_read_phy_reg(hw, GG82563_PHY_KMRN_MODE_CTRL, &reg_data); 2083 2083 ··· 2109 2109 return ret_val; 2110 2110 2111 2111 /* Configure Transmit Inter-Packet Gap */ 2112 - tipg = E1000_READ_REG(hw, TIPG); 2112 + tipg = er32(TIPG); 2113 2113 tipg &= ~E1000_TIPG_IPGT_MASK; 2114 2114 tipg |= DEFAULT_80003ES2LAN_TIPG_IPGT_1000; 2115 - E1000_WRITE_REG(hw, TIPG, tipg); 2115 + ew32(TIPG, tipg); 2116 2116 2117 2117 ret_val = e1000_read_phy_reg(hw, GG82563_PHY_KMRN_MODE_CTRL, &reg_data); 2118 2118 ··· 2295 2295 DEBUGOUT1("hw->fc = %d\n", hw->fc); 2296 2296 2297 2297 /* Read the Device Control Register. */ 2298 - ctrl = E1000_READ_REG(hw, CTRL); 2298 + ctrl = er32(CTRL); 2299 2299 2300 2300 /* Set the bits to Force Speed and Duplex in the Device Ctrl Reg. */ 2301 2301 ctrl |= (E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX); ··· 2350 2350 e1000_config_collision_dist(hw); 2351 2351 2352 2352 /* Write the configured values back to the Device Control Reg. */ 2353 - E1000_WRITE_REG(hw, CTRL, ctrl); 2353 + ew32(CTRL, ctrl); 2354 2354 2355 2355 if ((hw->phy_type == e1000_phy_m88) || 2356 2356 (hw->phy_type == e1000_phy_gg82563)) { ··· 2539 2539 else 2540 2540 coll_dist = E1000_COLLISION_DISTANCE; 2541 2541 2542 - tctl = E1000_READ_REG(hw, TCTL); 2542 + tctl = er32(TCTL); 2543 2543 2544 2544 tctl &= ~E1000_TCTL_COLD; 2545 2545 tctl |= coll_dist << E1000_COLD_SHIFT; 2546 2546 2547 - E1000_WRITE_REG(hw, TCTL, tctl); 2548 - E1000_WRITE_FLUSH(hw); 2547 + ew32(TCTL, tctl); 2548 + E1000_WRITE_FLUSH(); 2549 2549 } 2550 2550 2551 2551 /****************************************************************************** ··· 2573 2573 /* Read the Device Control Register and set the bits to Force Speed 2574 2574 * and Duplex. 2575 2575 */ 2576 - ctrl = E1000_READ_REG(hw, CTRL); 2576 + ctrl = er32(CTRL); 2577 2577 ctrl |= (E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX); 2578 2578 ctrl &= ~(E1000_CTRL_SPD_SEL | E1000_CTRL_ILOS); 2579 2579 ··· 2600 2600 ctrl |= E1000_CTRL_SPD_100; 2601 2601 2602 2602 /* Write the configured values back to the Device Control Reg. */ 2603 - E1000_WRITE_REG(hw, CTRL, ctrl); 2603 + ew32(CTRL, ctrl); 2604 2604 return E1000_SUCCESS; 2605 2605 } 2606 2606 ··· 2622 2622 DEBUGFUNC("e1000_force_mac_fc"); 2623 2623 2624 2624 /* Get the current configuration of the Device Control Register */ 2625 - ctrl = E1000_READ_REG(hw, CTRL); 2625 + ctrl = er32(CTRL); 2626 2626 2627 2627 /* Because we didn't get link via the internal auto-negotiation 2628 2628 * mechanism (we either forced link or we got link via PHY ··· 2666 2666 if (hw->mac_type == e1000_82542_rev2_0) 2667 2667 ctrl &= (~E1000_CTRL_TFCE); 2668 2668 2669 - E1000_WRITE_REG(hw, CTRL, ctrl); 2669 + ew32(CTRL, ctrl); 2670 2670 return E1000_SUCCESS; 2671 2671 } 2672 2672 ··· 2898 2898 2899 2899 DEBUGFUNC("e1000_check_for_link"); 2900 2900 2901 - ctrl = E1000_READ_REG(hw, CTRL); 2902 - status = E1000_READ_REG(hw, STATUS); 2901 + ctrl = er32(CTRL); 2902 + status = er32(STATUS); 2903 2903 2904 2904 /* On adapters with a MAC newer than 82544, SW Defineable pin 1 will be 2905 2905 * set when the optics detect a signal. On older adapters, it will be ··· 2907 2907 */ 2908 2908 if ((hw->media_type == e1000_media_type_fiber) || 2909 2909 (hw->media_type == e1000_media_type_internal_serdes)) { 2910 - rxcw = E1000_READ_REG(hw, RXCW); 2910 + rxcw = er32(RXCW); 2911 2911 2912 2912 if (hw->media_type == e1000_media_type_fiber) { 2913 2913 signal = (hw->mac_type > e1000_82544) ? E1000_CTRL_SWDPIN1 : 0; ··· 2953 2953 (!hw->autoneg) && 2954 2954 (hw->forced_speed_duplex == e1000_10_full || 2955 2955 hw->forced_speed_duplex == e1000_10_half)) { 2956 - E1000_WRITE_REG(hw, IMC, 0xffffffff); 2956 + ew32(IMC, 0xffffffff); 2957 2957 ret_val = e1000_polarity_reversal_workaround(hw); 2958 - icr = E1000_READ_REG(hw, ICR); 2959 - E1000_WRITE_REG(hw, ICS, (icr & ~E1000_ICS_LSC)); 2960 - E1000_WRITE_REG(hw, IMS, IMS_ENABLE_MASK); 2958 + icr = er32(ICR); 2959 + ew32(ICS, (icr & ~E1000_ICS_LSC)); 2960 + ew32(IMS, IMS_ENABLE_MASK); 2961 2961 } 2962 2962 2963 2963 } else { ··· 3022 3022 */ 3023 3023 if (hw->tbi_compatibility_on) { 3024 3024 /* If we previously were in the mode, turn it off. */ 3025 - rctl = E1000_READ_REG(hw, RCTL); 3025 + rctl = er32(RCTL); 3026 3026 rctl &= ~E1000_RCTL_SBP; 3027 - E1000_WRITE_REG(hw, RCTL, rctl); 3027 + ew32(RCTL, rctl); 3028 3028 hw->tbi_compatibility_on = false; 3029 3029 } 3030 3030 } else { ··· 3035 3035 */ 3036 3036 if (!hw->tbi_compatibility_on) { 3037 3037 hw->tbi_compatibility_on = true; 3038 - rctl = E1000_READ_REG(hw, RCTL); 3038 + rctl = er32(RCTL); 3039 3039 rctl |= E1000_RCTL_SBP; 3040 - E1000_WRITE_REG(hw, RCTL, rctl); 3040 + ew32(RCTL, rctl); 3041 3041 } 3042 3042 } 3043 3043 } ··· 3061 3061 DEBUGOUT("NOT RXing /C/, disable AutoNeg and force link.\n"); 3062 3062 3063 3063 /* Disable auto-negotiation in the TXCW register */ 3064 - E1000_WRITE_REG(hw, TXCW, (hw->txcw & ~E1000_TXCW_ANE)); 3064 + ew32(TXCW, (hw->txcw & ~E1000_TXCW_ANE)); 3065 3065 3066 3066 /* Force link-up and also force full-duplex. */ 3067 - ctrl = E1000_READ_REG(hw, CTRL); 3067 + ctrl = er32(CTRL); 3068 3068 ctrl |= (E1000_CTRL_SLU | E1000_CTRL_FD); 3069 - E1000_WRITE_REG(hw, CTRL, ctrl); 3069 + ew32(CTRL, ctrl); 3070 3070 3071 3071 /* Configure Flow Control after forcing link up. */ 3072 3072 ret_val = e1000_config_fc_after_link_up(hw); ··· 3084 3084 (hw->media_type == e1000_media_type_internal_serdes)) && 3085 3085 (ctrl & E1000_CTRL_SLU) && (rxcw & E1000_RXCW_C)) { 3086 3086 DEBUGOUT("RXing /C/, enable AutoNeg and stop forcing link.\n"); 3087 - E1000_WRITE_REG(hw, TXCW, hw->txcw); 3088 - E1000_WRITE_REG(hw, CTRL, (ctrl & ~E1000_CTRL_SLU)); 3087 + ew32(TXCW, hw->txcw); 3088 + ew32(CTRL, (ctrl & ~E1000_CTRL_SLU)); 3089 3089 3090 3090 hw->serdes_link_down = false; 3091 3091 } ··· 3093 3093 * based on MAC synchronization for internal serdes media type. 3094 3094 */ 3095 3095 else if ((hw->media_type == e1000_media_type_internal_serdes) && 3096 - !(E1000_TXCW_ANE & E1000_READ_REG(hw, TXCW))) { 3096 + !(E1000_TXCW_ANE & er32(TXCW))) { 3097 3097 /* SYNCH bit and IV bit are sticky. */ 3098 3098 udelay(10); 3099 - if (E1000_RXCW_SYNCH & E1000_READ_REG(hw, RXCW)) { 3099 + if (E1000_RXCW_SYNCH & er32(RXCW)) { 3100 3100 if (!(rxcw & E1000_RXCW_IV)) { 3101 3101 hw->serdes_link_down = false; 3102 3102 DEBUGOUT("SERDES: Link is up.\n"); ··· 3107 3107 } 3108 3108 } 3109 3109 if ((hw->media_type == e1000_media_type_internal_serdes) && 3110 - (E1000_TXCW_ANE & E1000_READ_REG(hw, TXCW))) { 3111 - hw->serdes_link_down = !(E1000_STATUS_LU & E1000_READ_REG(hw, STATUS)); 3110 + (E1000_TXCW_ANE & er32(TXCW))) { 3111 + hw->serdes_link_down = !(E1000_STATUS_LU & er32(STATUS)); 3112 3112 } 3113 3113 return E1000_SUCCESS; 3114 3114 } ··· 3129 3129 DEBUGFUNC("e1000_get_speed_and_duplex"); 3130 3130 3131 3131 if (hw->mac_type >= e1000_82543) { 3132 - status = E1000_READ_REG(hw, STATUS); 3132 + status = er32(STATUS); 3133 3133 if (status & E1000_STATUS_SPEED_1000) { 3134 3134 *speed = SPEED_1000; 3135 3135 DEBUGOUT("1000 Mbs, "); ··· 3238 3238 /* Raise the clock input to the Management Data Clock (by setting the MDC 3239 3239 * bit), and then delay 10 microseconds. 3240 3240 */ 3241 - E1000_WRITE_REG(hw, CTRL, (*ctrl | E1000_CTRL_MDC)); 3242 - E1000_WRITE_FLUSH(hw); 3241 + ew32(CTRL, (*ctrl | E1000_CTRL_MDC)); 3242 + E1000_WRITE_FLUSH(); 3243 3243 udelay(10); 3244 3244 } 3245 3245 ··· 3254 3254 /* Lower the clock input to the Management Data Clock (by clearing the MDC 3255 3255 * bit), and then delay 10 microseconds. 3256 3256 */ 3257 - E1000_WRITE_REG(hw, CTRL, (*ctrl & ~E1000_CTRL_MDC)); 3258 - E1000_WRITE_FLUSH(hw); 3257 + ew32(CTRL, (*ctrl & ~E1000_CTRL_MDC)); 3258 + E1000_WRITE_FLUSH(); 3259 3259 udelay(10); 3260 3260 } 3261 3261 ··· 3280 3280 mask = 0x01; 3281 3281 mask <<= (count - 1); 3282 3282 3283 - ctrl = E1000_READ_REG(hw, CTRL); 3283 + ctrl = er32(CTRL); 3284 3284 3285 3285 /* Set MDIO_DIR and MDC_DIR direction bits to be used as output pins. */ 3286 3286 ctrl |= (E1000_CTRL_MDIO_DIR | E1000_CTRL_MDC_DIR); ··· 3296 3296 else 3297 3297 ctrl &= ~E1000_CTRL_MDIO; 3298 3298 3299 - E1000_WRITE_REG(hw, CTRL, ctrl); 3300 - E1000_WRITE_FLUSH(hw); 3299 + ew32(CTRL, ctrl); 3300 + E1000_WRITE_FLUSH(); 3301 3301 3302 3302 udelay(10); 3303 3303 ··· 3328 3328 * by raising the input to the Management Data Clock (setting the MDC bit), 3329 3329 * and then reading the value of the MDIO bit. 3330 3330 */ 3331 - ctrl = E1000_READ_REG(hw, CTRL); 3331 + ctrl = er32(CTRL); 3332 3332 3333 3333 /* Clear MDIO_DIR (SWDPIO1) to indicate this bit is to be used as input. */ 3334 3334 ctrl &= ~E1000_CTRL_MDIO_DIR; 3335 3335 ctrl &= ~E1000_CTRL_MDIO; 3336 3336 3337 - E1000_WRITE_REG(hw, CTRL, ctrl); 3338 - E1000_WRITE_FLUSH(hw); 3337 + ew32(CTRL, ctrl); 3338 + E1000_WRITE_FLUSH(); 3339 3339 3340 3340 /* Raise and Lower the clock before reading in the data. This accounts for 3341 3341 * the turnaround bits. The first clock occurred when we clocked out the ··· 3347 3347 for (data = 0, i = 0; i < 16; i++) { 3348 3348 data = data << 1; 3349 3349 e1000_raise_mdi_clk(hw, &ctrl); 3350 - ctrl = E1000_READ_REG(hw, CTRL); 3350 + ctrl = er32(CTRL); 3351 3351 /* Check to see if we shifted in a "1". */ 3352 3352 if (ctrl & E1000_CTRL_MDIO) 3353 3353 data |= 1; ··· 3379 3379 if (e1000_get_hw_eeprom_semaphore(hw)) 3380 3380 return -E1000_ERR_SWFW_SYNC; 3381 3381 3382 - swfw_sync = E1000_READ_REG(hw, SW_FW_SYNC); 3382 + swfw_sync = er32(SW_FW_SYNC); 3383 3383 if (!(swfw_sync & (fwmask | swmask))) { 3384 3384 break; 3385 3385 } ··· 3397 3397 } 3398 3398 3399 3399 swfw_sync |= swmask; 3400 - E1000_WRITE_REG(hw, SW_FW_SYNC, swfw_sync); 3400 + ew32(SW_FW_SYNC, swfw_sync); 3401 3401 3402 3402 e1000_put_hw_eeprom_semaphore(hw); 3403 3403 return E1000_SUCCESS; ··· 3425 3425 while (e1000_get_hw_eeprom_semaphore(hw) != E1000_SUCCESS); 3426 3426 /* empty */ 3427 3427 3428 - swfw_sync = E1000_READ_REG(hw, SW_FW_SYNC); 3428 + swfw_sync = er32(SW_FW_SYNC); 3429 3429 swfw_sync &= ~swmask; 3430 - E1000_WRITE_REG(hw, SW_FW_SYNC, swfw_sync); 3430 + ew32(SW_FW_SYNC, swfw_sync); 3431 3431 3432 3432 e1000_put_hw_eeprom_semaphore(hw); 3433 3433 } ··· 3446 3446 DEBUGFUNC("e1000_read_phy_reg"); 3447 3447 3448 3448 if ((hw->mac_type == e1000_80003es2lan) && 3449 - (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1)) { 3449 + (er32(STATUS) & E1000_STATUS_FUNC_1)) { 3450 3450 swfw = E1000_SWFW_PHY1_SM; 3451 3451 } else { 3452 3452 swfw = E1000_SWFW_PHY0_SM; ··· 3517 3517 (phy_addr << E1000_MDIC_PHY_SHIFT) | 3518 3518 (E1000_MDIC_OP_READ)); 3519 3519 3520 - E1000_WRITE_REG(hw, MDIC, mdic); 3520 + ew32(MDIC, mdic); 3521 3521 3522 3522 /* Poll the ready bit to see if the MDI read completed */ 3523 3523 for (i = 0; i < 64; i++) { 3524 3524 udelay(50); 3525 - mdic = E1000_READ_REG(hw, MDIC); 3525 + mdic = er32(MDIC); 3526 3526 if (mdic & E1000_MDIC_READY) break; 3527 3527 } 3528 3528 if (!(mdic & E1000_MDIC_READY)) { ··· 3581 3581 DEBUGFUNC("e1000_write_phy_reg"); 3582 3582 3583 3583 if ((hw->mac_type == e1000_80003es2lan) && 3584 - (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1)) { 3584 + (er32(STATUS) & E1000_STATUS_FUNC_1)) { 3585 3585 swfw = E1000_SWFW_PHY1_SM; 3586 3586 } else { 3587 3587 swfw = E1000_SWFW_PHY0_SM; ··· 3653 3653 (phy_addr << E1000_MDIC_PHY_SHIFT) | 3654 3654 (E1000_MDIC_OP_WRITE)); 3655 3655 3656 - E1000_WRITE_REG(hw, MDIC, mdic); 3656 + ew32(MDIC, mdic); 3657 3657 3658 3658 /* Poll the ready bit to see if the MDI read completed */ 3659 3659 for (i = 0; i < 641; i++) { 3660 3660 udelay(5); 3661 - mdic = E1000_READ_REG(hw, MDIC); 3661 + mdic = er32(MDIC); 3662 3662 if (mdic & E1000_MDIC_READY) break; 3663 3663 } 3664 3664 if (!(mdic & E1000_MDIC_READY)) { ··· 3697 3697 DEBUGFUNC("e1000_read_kmrn_reg"); 3698 3698 3699 3699 if ((hw->mac_type == e1000_80003es2lan) && 3700 - (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1)) { 3700 + (er32(STATUS) & E1000_STATUS_FUNC_1)) { 3701 3701 swfw = E1000_SWFW_PHY1_SM; 3702 3702 } else { 3703 3703 swfw = E1000_SWFW_PHY0_SM; ··· 3709 3709 reg_val = ((reg_addr << E1000_KUMCTRLSTA_OFFSET_SHIFT) & 3710 3710 E1000_KUMCTRLSTA_OFFSET) | 3711 3711 E1000_KUMCTRLSTA_REN; 3712 - E1000_WRITE_REG(hw, KUMCTRLSTA, reg_val); 3712 + ew32(KUMCTRLSTA, reg_val); 3713 3713 udelay(2); 3714 3714 3715 3715 /* Read the data returned */ 3716 - reg_val = E1000_READ_REG(hw, KUMCTRLSTA); 3716 + reg_val = er32(KUMCTRLSTA); 3717 3717 *data = (u16)reg_val; 3718 3718 3719 3719 e1000_swfw_sync_release(hw, swfw); ··· 3727 3727 DEBUGFUNC("e1000_write_kmrn_reg"); 3728 3728 3729 3729 if ((hw->mac_type == e1000_80003es2lan) && 3730 - (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1)) { 3730 + (er32(STATUS) & E1000_STATUS_FUNC_1)) { 3731 3731 swfw = E1000_SWFW_PHY1_SM; 3732 3732 } else { 3733 3733 swfw = E1000_SWFW_PHY0_SM; ··· 3737 3737 3738 3738 reg_val = ((reg_addr << E1000_KUMCTRLSTA_OFFSET_SHIFT) & 3739 3739 E1000_KUMCTRLSTA_OFFSET) | data; 3740 - E1000_WRITE_REG(hw, KUMCTRLSTA, reg_val); 3740 + ew32(KUMCTRLSTA, reg_val); 3741 3741 udelay(2); 3742 3742 3743 3743 e1000_swfw_sync_release(hw, swfw); ··· 3768 3768 3769 3769 if (hw->mac_type > e1000_82543) { 3770 3770 if ((hw->mac_type == e1000_80003es2lan) && 3771 - (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1)) { 3771 + (er32(STATUS) & E1000_STATUS_FUNC_1)) { 3772 3772 swfw = E1000_SWFW_PHY1_SM; 3773 3773 } else { 3774 3774 swfw = E1000_SWFW_PHY0_SM; ··· 3783 3783 * and deassert. For e1000_82571 hardware and later, we instead delay 3784 3784 * for 50us between and 10ms after the deassertion. 3785 3785 */ 3786 - ctrl = E1000_READ_REG(hw, CTRL); 3787 - E1000_WRITE_REG(hw, CTRL, ctrl | E1000_CTRL_PHY_RST); 3788 - E1000_WRITE_FLUSH(hw); 3786 + ctrl = er32(CTRL); 3787 + ew32(CTRL, ctrl | E1000_CTRL_PHY_RST); 3788 + E1000_WRITE_FLUSH(); 3789 3789 3790 3790 if (hw->mac_type < e1000_82571) 3791 3791 msleep(10); 3792 3792 else 3793 3793 udelay(100); 3794 3794 3795 - E1000_WRITE_REG(hw, CTRL, ctrl); 3796 - E1000_WRITE_FLUSH(hw); 3795 + ew32(CTRL, ctrl); 3796 + E1000_WRITE_FLUSH(); 3797 3797 3798 3798 if (hw->mac_type >= e1000_82571) 3799 3799 mdelay(10); ··· 3803 3803 /* Read the Extended Device Control Register, assert the PHY_RESET_DIR 3804 3804 * bit to put the PHY into reset. Then, take it out of reset. 3805 3805 */ 3806 - ctrl_ext = E1000_READ_REG(hw, CTRL_EXT); 3806 + ctrl_ext = er32(CTRL_EXT); 3807 3807 ctrl_ext |= E1000_CTRL_EXT_SDP4_DIR; 3808 3808 ctrl_ext &= ~E1000_CTRL_EXT_SDP4_DATA; 3809 - E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext); 3810 - E1000_WRITE_FLUSH(hw); 3809 + ew32(CTRL_EXT, ctrl_ext); 3810 + E1000_WRITE_FLUSH(); 3811 3811 msleep(10); 3812 3812 ctrl_ext |= E1000_CTRL_EXT_SDP4_DATA; 3813 - E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext); 3814 - E1000_WRITE_FLUSH(hw); 3813 + ew32(CTRL_EXT, ctrl_ext); 3814 + E1000_WRITE_FLUSH(); 3815 3815 } 3816 3816 udelay(150); 3817 3817 3818 3818 if ((hw->mac_type == e1000_82541) || (hw->mac_type == e1000_82547)) { 3819 3819 /* Configure activity LED after PHY reset */ 3820 - led_ctrl = E1000_READ_REG(hw, LEDCTL); 3820 + led_ctrl = er32(LEDCTL); 3821 3821 led_ctrl &= IGP_ACTIVITY_LED_MASK; 3822 3822 led_ctrl |= (IGP_ACTIVITY_LED_ENABLE | IGP_LED3_MODE); 3823 - E1000_WRITE_REG(hw, LEDCTL, led_ctrl); 3823 + ew32(LEDCTL, led_ctrl); 3824 3824 } 3825 3825 3826 3826 /* Wait for FW to finish PHY configuration. */ ··· 3906 3906 3907 3907 do { 3908 3908 /* Disable link */ 3909 - reg = E1000_READ_REG(hw, PHY_CTRL); 3910 - E1000_WRITE_REG(hw, PHY_CTRL, reg | E1000_PHY_CTRL_GBE_DISABLE | 3909 + reg = er32(PHY_CTRL); 3910 + ew32(PHY_CTRL, reg | E1000_PHY_CTRL_GBE_DISABLE | 3911 3911 E1000_PHY_CTRL_NOND0A_GBE_DISABLE); 3912 3912 3913 3913 /* Write VR power-down enable - bits 9:8 should be 10b */ ··· 3922 3922 break; 3923 3923 3924 3924 /* Issue PHY reset and repeat at most one more time */ 3925 - reg = E1000_READ_REG(hw, CTRL); 3926 - E1000_WRITE_REG(hw, CTRL, reg | E1000_CTRL_PHY_RST); 3925 + reg = er32(CTRL); 3926 + ew32(CTRL, reg | E1000_CTRL_PHY_RST); 3927 3927 retry++; 3928 3928 } while (retry); 3929 3929 ··· 3981 3981 mdelay(5); 3982 3982 } 3983 3983 /* Disable GigE link negotiation */ 3984 - reg = E1000_READ_REG(hw, PHY_CTRL); 3985 - E1000_WRITE_REG(hw, PHY_CTRL, reg | E1000_PHY_CTRL_GBE_DISABLE | 3984 + reg = er32(PHY_CTRL); 3985 + ew32(PHY_CTRL, reg | E1000_PHY_CTRL_GBE_DISABLE | 3986 3986 E1000_PHY_CTRL_NOND0A_GBE_DISABLE); 3987 3987 3988 3988 /* unable to acquire PCS lock */ ··· 4388 4388 s32 e1000_init_eeprom_params(struct e1000_hw *hw) 4389 4389 { 4390 4390 struct e1000_eeprom_info *eeprom = &hw->eeprom; 4391 - u32 eecd = E1000_READ_REG(hw, EECD); 4391 + u32 eecd = er32(EECD); 4392 4392 s32 ret_val = E1000_SUCCESS; 4393 4393 u16 eeprom_size; 4394 4394 ··· 4490 4490 /* Ensure that the Autonomous FLASH update bit is cleared due to 4491 4491 * Flash update issue on parts which use a FLASH for NVM. */ 4492 4492 eecd &= ~E1000_EECD_AUPDEN; 4493 - E1000_WRITE_REG(hw, EECD, eecd); 4493 + ew32(EECD, eecd); 4494 4494 } 4495 4495 break; 4496 4496 case e1000_80003es2lan: ··· 4580 4580 * wait <delay> microseconds. 4581 4581 */ 4582 4582 *eecd = *eecd | E1000_EECD_SK; 4583 - E1000_WRITE_REG(hw, EECD, *eecd); 4584 - E1000_WRITE_FLUSH(hw); 4583 + ew32(EECD, *eecd); 4584 + E1000_WRITE_FLUSH(); 4585 4585 udelay(hw->eeprom.delay_usec); 4586 4586 } 4587 4587 ··· 4597 4597 * wait 50 microseconds. 4598 4598 */ 4599 4599 *eecd = *eecd & ~E1000_EECD_SK; 4600 - E1000_WRITE_REG(hw, EECD, *eecd); 4601 - E1000_WRITE_FLUSH(hw); 4600 + ew32(EECD, *eecd); 4601 + E1000_WRITE_FLUSH(); 4602 4602 udelay(hw->eeprom.delay_usec); 4603 4603 } 4604 4604 ··· 4620 4620 * In order to do this, "data" must be broken down into bits. 4621 4621 */ 4622 4622 mask = 0x01 << (count - 1); 4623 - eecd = E1000_READ_REG(hw, EECD); 4623 + eecd = er32(EECD); 4624 4624 if (eeprom->type == e1000_eeprom_microwire) { 4625 4625 eecd &= ~E1000_EECD_DO; 4626 4626 } else if (eeprom->type == e1000_eeprom_spi) { ··· 4637 4637 if (data & mask) 4638 4638 eecd |= E1000_EECD_DI; 4639 4639 4640 - E1000_WRITE_REG(hw, EECD, eecd); 4641 - E1000_WRITE_FLUSH(hw); 4640 + ew32(EECD, eecd); 4641 + E1000_WRITE_FLUSH(); 4642 4642 4643 4643 udelay(eeprom->delay_usec); 4644 4644 ··· 4651 4651 4652 4652 /* We leave the "DI" bit set to "0" when we leave this routine. */ 4653 4653 eecd &= ~E1000_EECD_DI; 4654 - E1000_WRITE_REG(hw, EECD, eecd); 4654 + ew32(EECD, eecd); 4655 4655 } 4656 4656 4657 4657 /****************************************************************************** ··· 4672 4672 * always be clear. 4673 4673 */ 4674 4674 4675 - eecd = E1000_READ_REG(hw, EECD); 4675 + eecd = er32(EECD); 4676 4676 4677 4677 eecd &= ~(E1000_EECD_DO | E1000_EECD_DI); 4678 4678 data = 0; ··· 4681 4681 data = data << 1; 4682 4682 e1000_raise_ee_clk(hw, &eecd); 4683 4683 4684 - eecd = E1000_READ_REG(hw, EECD); 4684 + eecd = er32(EECD); 4685 4685 4686 4686 eecd &= ~(E1000_EECD_DI); 4687 4687 if (eecd & E1000_EECD_DO) ··· 4710 4710 4711 4711 if (e1000_swfw_sync_acquire(hw, E1000_SWFW_EEP_SM)) 4712 4712 return -E1000_ERR_SWFW_SYNC; 4713 - eecd = E1000_READ_REG(hw, EECD); 4713 + eecd = er32(EECD); 4714 4714 4715 4715 if (hw->mac_type != e1000_82573) { 4716 4716 /* Request EEPROM Access */ 4717 4717 if (hw->mac_type > e1000_82544) { 4718 4718 eecd |= E1000_EECD_REQ; 4719 - E1000_WRITE_REG(hw, EECD, eecd); 4720 - eecd = E1000_READ_REG(hw, EECD); 4719 + ew32(EECD, eecd); 4720 + eecd = er32(EECD); 4721 4721 while ((!(eecd & E1000_EECD_GNT)) && 4722 4722 (i < E1000_EEPROM_GRANT_ATTEMPTS)) { 4723 4723 i++; 4724 4724 udelay(5); 4725 - eecd = E1000_READ_REG(hw, EECD); 4725 + eecd = er32(EECD); 4726 4726 } 4727 4727 if (!(eecd & E1000_EECD_GNT)) { 4728 4728 eecd &= ~E1000_EECD_REQ; 4729 - E1000_WRITE_REG(hw, EECD, eecd); 4729 + ew32(EECD, eecd); 4730 4730 DEBUGOUT("Could not acquire EEPROM grant\n"); 4731 4731 e1000_swfw_sync_release(hw, E1000_SWFW_EEP_SM); 4732 4732 return -E1000_ERR_EEPROM; ··· 4739 4739 if (eeprom->type == e1000_eeprom_microwire) { 4740 4740 /* Clear SK and DI */ 4741 4741 eecd &= ~(E1000_EECD_DI | E1000_EECD_SK); 4742 - E1000_WRITE_REG(hw, EECD, eecd); 4742 + ew32(EECD, eecd); 4743 4743 4744 4744 /* Set CS */ 4745 4745 eecd |= E1000_EECD_CS; 4746 - E1000_WRITE_REG(hw, EECD, eecd); 4746 + ew32(EECD, eecd); 4747 4747 } else if (eeprom->type == e1000_eeprom_spi) { 4748 4748 /* Clear SK and CS */ 4749 4749 eecd &= ~(E1000_EECD_CS | E1000_EECD_SK); 4750 - E1000_WRITE_REG(hw, EECD, eecd); 4750 + ew32(EECD, eecd); 4751 4751 udelay(1); 4752 4752 } 4753 4753 ··· 4764 4764 struct e1000_eeprom_info *eeprom = &hw->eeprom; 4765 4765 u32 eecd; 4766 4766 4767 - eecd = E1000_READ_REG(hw, EECD); 4767 + eecd = er32(EECD); 4768 4768 4769 4769 if (eeprom->type == e1000_eeprom_microwire) { 4770 4770 eecd &= ~(E1000_EECD_CS | E1000_EECD_SK); 4771 - E1000_WRITE_REG(hw, EECD, eecd); 4772 - E1000_WRITE_FLUSH(hw); 4771 + ew32(EECD, eecd); 4772 + E1000_WRITE_FLUSH(); 4773 4773 udelay(eeprom->delay_usec); 4774 4774 4775 4775 /* Clock high */ 4776 4776 eecd |= E1000_EECD_SK; 4777 - E1000_WRITE_REG(hw, EECD, eecd); 4778 - E1000_WRITE_FLUSH(hw); 4777 + ew32(EECD, eecd); 4778 + E1000_WRITE_FLUSH(); 4779 4779 udelay(eeprom->delay_usec); 4780 4780 4781 4781 /* Select EEPROM */ 4782 4782 eecd |= E1000_EECD_CS; 4783 - E1000_WRITE_REG(hw, EECD, eecd); 4784 - E1000_WRITE_FLUSH(hw); 4783 + ew32(EECD, eecd); 4784 + E1000_WRITE_FLUSH(); 4785 4785 udelay(eeprom->delay_usec); 4786 4786 4787 4787 /* Clock low */ 4788 4788 eecd &= ~E1000_EECD_SK; 4789 - E1000_WRITE_REG(hw, EECD, eecd); 4790 - E1000_WRITE_FLUSH(hw); 4789 + ew32(EECD, eecd); 4790 + E1000_WRITE_FLUSH(); 4791 4791 udelay(eeprom->delay_usec); 4792 4792 } else if (eeprom->type == e1000_eeprom_spi) { 4793 4793 /* Toggle CS to flush commands */ 4794 4794 eecd |= E1000_EECD_CS; 4795 - E1000_WRITE_REG(hw, EECD, eecd); 4796 - E1000_WRITE_FLUSH(hw); 4795 + ew32(EECD, eecd); 4796 + E1000_WRITE_FLUSH(); 4797 4797 udelay(eeprom->delay_usec); 4798 4798 eecd &= ~E1000_EECD_CS; 4799 - E1000_WRITE_REG(hw, EECD, eecd); 4800 - E1000_WRITE_FLUSH(hw); 4799 + ew32(EECD, eecd); 4800 + E1000_WRITE_FLUSH(); 4801 4801 udelay(eeprom->delay_usec); 4802 4802 } 4803 4803 } ··· 4813 4813 4814 4814 DEBUGFUNC("e1000_release_eeprom"); 4815 4815 4816 - eecd = E1000_READ_REG(hw, EECD); 4816 + eecd = er32(EECD); 4817 4817 4818 4818 if (hw->eeprom.type == e1000_eeprom_spi) { 4819 4819 eecd |= E1000_EECD_CS; /* Pull CS high */ 4820 4820 eecd &= ~E1000_EECD_SK; /* Lower SCK */ 4821 4821 4822 - E1000_WRITE_REG(hw, EECD, eecd); 4822 + ew32(EECD, eecd); 4823 4823 4824 4824 udelay(hw->eeprom.delay_usec); 4825 4825 } else if (hw->eeprom.type == e1000_eeprom_microwire) { ··· 4828 4828 /* CS on Microwire is active-high */ 4829 4829 eecd &= ~(E1000_EECD_CS | E1000_EECD_DI); 4830 4830 4831 - E1000_WRITE_REG(hw, EECD, eecd); 4831 + ew32(EECD, eecd); 4832 4832 4833 4833 /* Rising edge of clock */ 4834 4834 eecd |= E1000_EECD_SK; 4835 - E1000_WRITE_REG(hw, EECD, eecd); 4836 - E1000_WRITE_FLUSH(hw); 4835 + ew32(EECD, eecd); 4836 + E1000_WRITE_FLUSH(); 4837 4837 udelay(hw->eeprom.delay_usec); 4838 4838 4839 4839 /* Falling edge of clock */ 4840 4840 eecd &= ~E1000_EECD_SK; 4841 - E1000_WRITE_REG(hw, EECD, eecd); 4842 - E1000_WRITE_FLUSH(hw); 4841 + ew32(EECD, eecd); 4842 + E1000_WRITE_FLUSH(); 4843 4843 udelay(hw->eeprom.delay_usec); 4844 4844 } 4845 4845 4846 4846 /* Stop requesting EEPROM access */ 4847 4847 if (hw->mac_type > e1000_82544) { 4848 4848 eecd &= ~E1000_EECD_REQ; 4849 - E1000_WRITE_REG(hw, EECD, eecd); 4849 + ew32(EECD, eecd); 4850 4850 } 4851 4851 4852 4852 e1000_swfw_sync_release(hw, E1000_SWFW_EEP_SM); ··· 5009 5009 eerd = ((offset+i) << E1000_EEPROM_RW_ADDR_SHIFT) + 5010 5010 E1000_EEPROM_RW_REG_START; 5011 5011 5012 - E1000_WRITE_REG(hw, EERD, eerd); 5012 + ew32(EERD, eerd); 5013 5013 error = e1000_poll_eerd_eewr_done(hw, E1000_EEPROM_POLL_READ); 5014 5014 5015 5015 if (error) { 5016 5016 break; 5017 5017 } 5018 - data[i] = (E1000_READ_REG(hw, EERD) >> E1000_EEPROM_RW_REG_DATA); 5018 + data[i] = (er32(EERD) >> E1000_EEPROM_RW_REG_DATA); 5019 5019 5020 5020 } 5021 5021 ··· 5050 5050 break; 5051 5051 } 5052 5052 5053 - E1000_WRITE_REG(hw, EEWR, register_value); 5053 + ew32(EEWR, register_value); 5054 5054 5055 5055 error = e1000_poll_eerd_eewr_done(hw, E1000_EEPROM_POLL_WRITE); 5056 5056 ··· 5076 5076 5077 5077 for (i = 0; i < attempts; i++) { 5078 5078 if (eerd == E1000_EEPROM_POLL_READ) 5079 - reg = E1000_READ_REG(hw, EERD); 5079 + reg = er32(EERD); 5080 5080 else 5081 - reg = E1000_READ_REG(hw, EEWR); 5081 + reg = er32(EEWR); 5082 5082 5083 5083 if (reg & E1000_EEPROM_RW_REG_DONE) { 5084 5084 done = E1000_SUCCESS; ··· 5105 5105 return false; 5106 5106 5107 5107 if (hw->mac_type == e1000_82573) { 5108 - eecd = E1000_READ_REG(hw, EECD); 5108 + eecd = er32(EECD); 5109 5109 5110 5110 /* Isolate bits 15 & 16 */ 5111 5111 eecd = ((eecd >> 15) & 0x03); ··· 5215 5215 e1000_commit_shadow_ram(hw); 5216 5216 /* Reload the EEPROM, or else modifications will not appear 5217 5217 * until after next adapter reset. */ 5218 - ctrl_ext = E1000_READ_REG(hw, CTRL_EXT); 5218 + ctrl_ext = er32(CTRL_EXT); 5219 5219 ctrl_ext |= E1000_CTRL_EXT_EE_RST; 5220 - E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext); 5220 + ew32(CTRL_EXT, ctrl_ext); 5221 5221 msleep(10); 5222 5222 } 5223 5223 return E1000_SUCCESS; ··· 5395 5395 * If DO does not go high in 10 milliseconds, then error out. 5396 5396 */ 5397 5397 for (i = 0; i < 200; i++) { 5398 - eecd = E1000_READ_REG(hw, EECD); 5398 + eecd = er32(EECD); 5399 5399 if (eecd & E1000_EECD_DO) break; 5400 5400 udelay(50); 5401 5401 } ··· 5449 5449 5450 5450 if (hw->mac_type == e1000_82573) { 5451 5451 /* The flop register will be used to determine if flash type is STM */ 5452 - flop = E1000_READ_REG(hw, FLOP); 5452 + flop = er32(FLOP); 5453 5453 for (i=0; i < attempts; i++) { 5454 - eecd = E1000_READ_REG(hw, EECD); 5454 + eecd = er32(EECD); 5455 5455 if ((eecd & E1000_EECD_FLUPD) == 0) { 5456 5456 break; 5457 5457 } ··· 5464 5464 5465 5465 /* If STM opcode located in bits 15:8 of flop, reset firmware */ 5466 5466 if ((flop & 0xFF00) == E1000_STM_OPCODE) { 5467 - E1000_WRITE_REG(hw, HICR, E1000_HICR_FW_RESET); 5467 + ew32(HICR, E1000_HICR_FW_RESET); 5468 5468 } 5469 5469 5470 5470 /* Perform the flash update */ 5471 - E1000_WRITE_REG(hw, EECD, eecd | E1000_EECD_FLUPD); 5471 + ew32(EECD, eecd | E1000_EECD_FLUPD); 5472 5472 5473 5473 for (i=0; i < attempts; i++) { 5474 - eecd = E1000_READ_REG(hw, EECD); 5474 + eecd = er32(EECD); 5475 5475 if ((eecd & E1000_EECD_FLUPD) == 0) { 5476 5476 break; 5477 5477 } ··· 5487 5487 /* We're writing to the opposite bank so if we're on bank 1, 5488 5488 * write to bank 0 etc. We also need to erase the segment that 5489 5489 * is going to be written */ 5490 - if (!(E1000_READ_REG(hw, EECD) & E1000_EECD_SEC1VAL)) { 5490 + if (!(er32(EECD) & E1000_EECD_SEC1VAL)) { 5491 5491 new_bank_offset = hw->flash_bank_size * 2; 5492 5492 old_bank_offset = 0; 5493 5493 e1000_erase_ich8_4k_segment(hw, 1); ··· 5621 5621 case e1000_82546_rev_3: 5622 5622 case e1000_82571: 5623 5623 case e1000_80003es2lan: 5624 - if (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1) 5624 + if (er32(STATUS) & E1000_STATUS_FUNC_1) 5625 5625 hw->perm_mac_addr[5] ^= 0x01; 5626 5626 break; 5627 5627 } ··· 5666 5666 DEBUGOUT("Clearing RAR[1-15]\n"); 5667 5667 for (i = 1; i < rar_num; i++) { 5668 5668 E1000_WRITE_REG_ARRAY(hw, RA, (i << 1), 0); 5669 - E1000_WRITE_FLUSH(hw); 5669 + E1000_WRITE_FLUSH(); 5670 5670 E1000_WRITE_REG_ARRAY(hw, RA, ((i << 1) + 1), 0); 5671 - E1000_WRITE_FLUSH(hw); 5671 + E1000_WRITE_FLUSH(); 5672 5672 } 5673 5673 } 5674 5674 ··· 5772 5772 if ((hw->mac_type == e1000_82544) && ((hash_reg & 0x1) == 1)) { 5773 5773 temp = E1000_READ_REG_ARRAY(hw, MTA, (hash_reg - 1)); 5774 5774 E1000_WRITE_REG_ARRAY(hw, MTA, hash_reg, mta); 5775 - E1000_WRITE_FLUSH(hw); 5775 + E1000_WRITE_FLUSH(); 5776 5776 E1000_WRITE_REG_ARRAY(hw, MTA, (hash_reg - 1), temp); 5777 - E1000_WRITE_FLUSH(hw); 5777 + E1000_WRITE_FLUSH(); 5778 5778 } else { 5779 5779 E1000_WRITE_REG_ARRAY(hw, MTA, hash_reg, mta); 5780 - E1000_WRITE_FLUSH(hw); 5780 + E1000_WRITE_FLUSH(); 5781 5781 } 5782 5782 } 5783 5783 ··· 5831 5831 } 5832 5832 5833 5833 E1000_WRITE_REG_ARRAY(hw, RA, (index << 1), rar_low); 5834 - E1000_WRITE_FLUSH(hw); 5834 + E1000_WRITE_FLUSH(); 5835 5835 E1000_WRITE_REG_ARRAY(hw, RA, ((index << 1) + 1), rar_high); 5836 - E1000_WRITE_FLUSH(hw); 5836 + E1000_WRITE_FLUSH(); 5837 5837 } 5838 5838 5839 5839 /****************************************************************************** ··· 5853 5853 if ((hw->mac_type == e1000_82544) && ((offset & 0x1) == 1)) { 5854 5854 temp = E1000_READ_REG_ARRAY(hw, VFTA, (offset - 1)); 5855 5855 E1000_WRITE_REG_ARRAY(hw, VFTA, offset, value); 5856 - E1000_WRITE_FLUSH(hw); 5856 + E1000_WRITE_FLUSH(); 5857 5857 E1000_WRITE_REG_ARRAY(hw, VFTA, (offset - 1), temp); 5858 - E1000_WRITE_FLUSH(hw); 5858 + E1000_WRITE_FLUSH(); 5859 5859 } else { 5860 5860 E1000_WRITE_REG_ARRAY(hw, VFTA, offset, value); 5861 - E1000_WRITE_FLUSH(hw); 5861 + E1000_WRITE_FLUSH(); 5862 5862 } 5863 5863 } 5864 5864 ··· 5896 5896 * manageability unit */ 5897 5897 vfta_value = (offset == vfta_offset) ? vfta_bit_in_reg : 0; 5898 5898 E1000_WRITE_REG_ARRAY(hw, VFTA, offset, vfta_value); 5899 - E1000_WRITE_FLUSH(hw); 5899 + E1000_WRITE_FLUSH(); 5900 5900 } 5901 5901 } 5902 5902 ··· 5916 5916 return E1000_SUCCESS; 5917 5917 } 5918 5918 5919 - ledctl = E1000_READ_REG(hw, LEDCTL); 5919 + ledctl = er32(LEDCTL); 5920 5920 hw->ledctl_default = ledctl; 5921 5921 hw->ledctl_mode1 = hw->ledctl_default; 5922 5922 hw->ledctl_mode2 = hw->ledctl_default; ··· 6013 6013 /* Fall Through */ 6014 6014 default: 6015 6015 if (hw->media_type == e1000_media_type_fiber) { 6016 - ledctl = E1000_READ_REG(hw, LEDCTL); 6016 + ledctl = er32(LEDCTL); 6017 6017 /* Save current LEDCTL settings */ 6018 6018 hw->ledctl_default = ledctl; 6019 6019 /* Turn off LED0 */ ··· 6022 6022 E1000_LEDCTL_LED0_MODE_MASK); 6023 6023 ledctl |= (E1000_LEDCTL_MODE_LED_OFF << 6024 6024 E1000_LEDCTL_LED0_MODE_SHIFT); 6025 - E1000_WRITE_REG(hw, LEDCTL, ledctl); 6025 + ew32(LEDCTL, ledctl); 6026 6026 } else if (hw->media_type == e1000_media_type_copper) 6027 - E1000_WRITE_REG(hw, LEDCTL, hw->ledctl_mode1); 6027 + ew32(LEDCTL, hw->ledctl_mode1); 6028 6028 break; 6029 6029 } 6030 6030 ··· 6064 6064 ledctl_blink |= (E1000_LEDCTL_LED0_BLINK << (i * 8)); 6065 6065 } 6066 6066 6067 - E1000_WRITE_REG(hw, LEDCTL, ledctl_blink); 6067 + ew32(LEDCTL, ledctl_blink); 6068 6068 6069 6069 return E1000_SUCCESS; 6070 6070 } ··· 6103 6103 break; 6104 6104 } 6105 6105 /* Restore LEDCTL settings */ 6106 - E1000_WRITE_REG(hw, LEDCTL, hw->ledctl_default); 6106 + ew32(LEDCTL, hw->ledctl_default); 6107 6107 break; 6108 6108 } 6109 6109 ··· 6117 6117 *****************************************************************************/ 6118 6118 s32 e1000_led_on(struct e1000_hw *hw) 6119 6119 { 6120 - u32 ctrl = E1000_READ_REG(hw, CTRL); 6120 + u32 ctrl = er32(CTRL); 6121 6121 6122 6122 DEBUGFUNC("e1000_led_on"); 6123 6123 ··· 6149 6149 e1000_write_phy_reg(hw, IFE_PHY_SPECIAL_CONTROL_LED, 6150 6150 (IFE_PSCL_PROBE_MODE | IFE_PSCL_PROBE_LEDS_ON)); 6151 6151 } else if (hw->media_type == e1000_media_type_copper) { 6152 - E1000_WRITE_REG(hw, LEDCTL, hw->ledctl_mode2); 6152 + ew32(LEDCTL, hw->ledctl_mode2); 6153 6153 return E1000_SUCCESS; 6154 6154 } 6155 6155 break; 6156 6156 } 6157 6157 6158 - E1000_WRITE_REG(hw, CTRL, ctrl); 6158 + ew32(CTRL, ctrl); 6159 6159 6160 6160 return E1000_SUCCESS; 6161 6161 } ··· 6167 6167 *****************************************************************************/ 6168 6168 s32 e1000_led_off(struct e1000_hw *hw) 6169 6169 { 6170 - u32 ctrl = E1000_READ_REG(hw, CTRL); 6170 + u32 ctrl = er32(CTRL); 6171 6171 6172 6172 DEBUGFUNC("e1000_led_off"); 6173 6173 ··· 6199 6199 e1000_write_phy_reg(hw, IFE_PHY_SPECIAL_CONTROL_LED, 6200 6200 (IFE_PSCL_PROBE_MODE | IFE_PSCL_PROBE_LEDS_OFF)); 6201 6201 } else if (hw->media_type == e1000_media_type_copper) { 6202 - E1000_WRITE_REG(hw, LEDCTL, hw->ledctl_mode1); 6202 + ew32(LEDCTL, hw->ledctl_mode1); 6203 6203 return E1000_SUCCESS; 6204 6204 } 6205 6205 break; 6206 6206 } 6207 6207 6208 - E1000_WRITE_REG(hw, CTRL, ctrl); 6208 + ew32(CTRL, ctrl); 6209 6209 6210 6210 return E1000_SUCCESS; 6211 6211 } ··· 6219 6219 { 6220 6220 volatile u32 temp; 6221 6221 6222 - temp = E1000_READ_REG(hw, CRCERRS); 6223 - temp = E1000_READ_REG(hw, SYMERRS); 6224 - temp = E1000_READ_REG(hw, MPC); 6225 - temp = E1000_READ_REG(hw, SCC); 6226 - temp = E1000_READ_REG(hw, ECOL); 6227 - temp = E1000_READ_REG(hw, MCC); 6228 - temp = E1000_READ_REG(hw, LATECOL); 6229 - temp = E1000_READ_REG(hw, COLC); 6230 - temp = E1000_READ_REG(hw, DC); 6231 - temp = E1000_READ_REG(hw, SEC); 6232 - temp = E1000_READ_REG(hw, RLEC); 6233 - temp = E1000_READ_REG(hw, XONRXC); 6234 - temp = E1000_READ_REG(hw, XONTXC); 6235 - temp = E1000_READ_REG(hw, XOFFRXC); 6236 - temp = E1000_READ_REG(hw, XOFFTXC); 6237 - temp = E1000_READ_REG(hw, FCRUC); 6222 + temp = er32(CRCERRS); 6223 + temp = er32(SYMERRS); 6224 + temp = er32(MPC); 6225 + temp = er32(SCC); 6226 + temp = er32(ECOL); 6227 + temp = er32(MCC); 6228 + temp = er32(LATECOL); 6229 + temp = er32(COLC); 6230 + temp = er32(DC); 6231 + temp = er32(SEC); 6232 + temp = er32(RLEC); 6233 + temp = er32(XONRXC); 6234 + temp = er32(XONTXC); 6235 + temp = er32(XOFFRXC); 6236 + temp = er32(XOFFTXC); 6237 + temp = er32(FCRUC); 6238 6238 6239 6239 if (hw->mac_type != e1000_ich8lan) { 6240 - temp = E1000_READ_REG(hw, PRC64); 6241 - temp = E1000_READ_REG(hw, PRC127); 6242 - temp = E1000_READ_REG(hw, PRC255); 6243 - temp = E1000_READ_REG(hw, PRC511); 6244 - temp = E1000_READ_REG(hw, PRC1023); 6245 - temp = E1000_READ_REG(hw, PRC1522); 6240 + temp = er32(PRC64); 6241 + temp = er32(PRC127); 6242 + temp = er32(PRC255); 6243 + temp = er32(PRC511); 6244 + temp = er32(PRC1023); 6245 + temp = er32(PRC1522); 6246 6246 } 6247 6247 6248 - temp = E1000_READ_REG(hw, GPRC); 6249 - temp = E1000_READ_REG(hw, BPRC); 6250 - temp = E1000_READ_REG(hw, MPRC); 6251 - temp = E1000_READ_REG(hw, GPTC); 6252 - temp = E1000_READ_REG(hw, GORCL); 6253 - temp = E1000_READ_REG(hw, GORCH); 6254 - temp = E1000_READ_REG(hw, GOTCL); 6255 - temp = E1000_READ_REG(hw, GOTCH); 6256 - temp = E1000_READ_REG(hw, RNBC); 6257 - temp = E1000_READ_REG(hw, RUC); 6258 - temp = E1000_READ_REG(hw, RFC); 6259 - temp = E1000_READ_REG(hw, ROC); 6260 - temp = E1000_READ_REG(hw, RJC); 6261 - temp = E1000_READ_REG(hw, TORL); 6262 - temp = E1000_READ_REG(hw, TORH); 6263 - temp = E1000_READ_REG(hw, TOTL); 6264 - temp = E1000_READ_REG(hw, TOTH); 6265 - temp = E1000_READ_REG(hw, TPR); 6266 - temp = E1000_READ_REG(hw, TPT); 6248 + temp = er32(GPRC); 6249 + temp = er32(BPRC); 6250 + temp = er32(MPRC); 6251 + temp = er32(GPTC); 6252 + temp = er32(GORCL); 6253 + temp = er32(GORCH); 6254 + temp = er32(GOTCL); 6255 + temp = er32(GOTCH); 6256 + temp = er32(RNBC); 6257 + temp = er32(RUC); 6258 + temp = er32(RFC); 6259 + temp = er32(ROC); 6260 + temp = er32(RJC); 6261 + temp = er32(TORL); 6262 + temp = er32(TORH); 6263 + temp = er32(TOTL); 6264 + temp = er32(TOTH); 6265 + temp = er32(TPR); 6266 + temp = er32(TPT); 6267 6267 6268 6268 if (hw->mac_type != e1000_ich8lan) { 6269 - temp = E1000_READ_REG(hw, PTC64); 6270 - temp = E1000_READ_REG(hw, PTC127); 6271 - temp = E1000_READ_REG(hw, PTC255); 6272 - temp = E1000_READ_REG(hw, PTC511); 6273 - temp = E1000_READ_REG(hw, PTC1023); 6274 - temp = E1000_READ_REG(hw, PTC1522); 6269 + temp = er32(PTC64); 6270 + temp = er32(PTC127); 6271 + temp = er32(PTC255); 6272 + temp = er32(PTC511); 6273 + temp = er32(PTC1023); 6274 + temp = er32(PTC1522); 6275 6275 } 6276 6276 6277 - temp = E1000_READ_REG(hw, MPTC); 6278 - temp = E1000_READ_REG(hw, BPTC); 6277 + temp = er32(MPTC); 6278 + temp = er32(BPTC); 6279 6279 6280 6280 if (hw->mac_type < e1000_82543) return; 6281 6281 6282 - temp = E1000_READ_REG(hw, ALGNERRC); 6283 - temp = E1000_READ_REG(hw, RXERRC); 6284 - temp = E1000_READ_REG(hw, TNCRS); 6285 - temp = E1000_READ_REG(hw, CEXTERR); 6286 - temp = E1000_READ_REG(hw, TSCTC); 6287 - temp = E1000_READ_REG(hw, TSCTFC); 6282 + temp = er32(ALGNERRC); 6283 + temp = er32(RXERRC); 6284 + temp = er32(TNCRS); 6285 + temp = er32(CEXTERR); 6286 + temp = er32(TSCTC); 6287 + temp = er32(TSCTFC); 6288 6288 6289 6289 if (hw->mac_type <= e1000_82544) return; 6290 6290 6291 - temp = E1000_READ_REG(hw, MGTPRC); 6292 - temp = E1000_READ_REG(hw, MGTPDC); 6293 - temp = E1000_READ_REG(hw, MGTPTC); 6291 + temp = er32(MGTPRC); 6292 + temp = er32(MGTPDC); 6293 + temp = er32(MGTPTC); 6294 6294 6295 6295 if (hw->mac_type <= e1000_82547_rev_2) return; 6296 6296 6297 - temp = E1000_READ_REG(hw, IAC); 6298 - temp = E1000_READ_REG(hw, ICRXOC); 6297 + temp = er32(IAC); 6298 + temp = er32(ICRXOC); 6299 6299 6300 6300 if (hw->mac_type == e1000_ich8lan) return; 6301 6301 6302 - temp = E1000_READ_REG(hw, ICRXPTC); 6303 - temp = E1000_READ_REG(hw, ICRXATC); 6304 - temp = E1000_READ_REG(hw, ICTXPTC); 6305 - temp = E1000_READ_REG(hw, ICTXATC); 6306 - temp = E1000_READ_REG(hw, ICTXQEC); 6307 - temp = E1000_READ_REG(hw, ICTXQMTC); 6308 - temp = E1000_READ_REG(hw, ICRXDMTC); 6302 + temp = er32(ICRXPTC); 6303 + temp = er32(ICRXATC); 6304 + temp = er32(ICTXPTC); 6305 + temp = er32(ICTXATC); 6306 + temp = er32(ICTXQEC); 6307 + temp = er32(ICTXQMTC); 6308 + temp = er32(ICRXDMTC); 6309 6309 } 6310 6310 6311 6311 /****************************************************************************** ··· 6331 6331 hw->ifs_ratio = IFS_RATIO; 6332 6332 } 6333 6333 hw->in_ifs_mode = false; 6334 - E1000_WRITE_REG(hw, AIT, 0); 6334 + ew32(AIT, 0); 6335 6335 } else { 6336 6336 DEBUGOUT("Not in Adaptive IFS mode!\n"); 6337 6337 } ··· 6358 6358 hw->current_ifs_val = hw->ifs_min_val; 6359 6359 else 6360 6360 hw->current_ifs_val += hw->ifs_step_size; 6361 - E1000_WRITE_REG(hw, AIT, hw->current_ifs_val); 6361 + ew32(AIT, hw->current_ifs_val); 6362 6362 } 6363 6363 } 6364 6364 } else { 6365 6365 if (hw->in_ifs_mode && (hw->tx_packet_delta <= MIN_NUM_XMITS)) { 6366 6366 hw->current_ifs_val = 0; 6367 6367 hw->in_ifs_mode = false; 6368 - E1000_WRITE_REG(hw, AIT, 0); 6368 + ew32(AIT, 0); 6369 6369 } 6370 6370 } 6371 6371 } else { ··· 6489 6489 hw->bus_width = e1000_bus_width_pciex_1; 6490 6490 break; 6491 6491 default: 6492 - status = E1000_READ_REG(hw, STATUS); 6492 + status = er32(STATUS); 6493 6493 hw->bus_type = (status & E1000_STATUS_PCIX_MODE) ? 6494 6494 e1000_bus_type_pcix : e1000_bus_type_pci; 6495 6495 ··· 7114 7114 /* MAC writes into PHY register based on the state transition 7115 7115 * and start auto-negotiation. SW driver can overwrite the settings 7116 7116 * in CSR PHY power control E1000_PHY_CTRL register. */ 7117 - phy_ctrl = E1000_READ_REG(hw, PHY_CTRL); 7117 + phy_ctrl = er32(PHY_CTRL); 7118 7118 } else { 7119 7119 ret_val = e1000_read_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, &phy_data); 7120 7120 if (ret_val) ··· 7131 7131 } else { 7132 7132 if (hw->mac_type == e1000_ich8lan) { 7133 7133 phy_ctrl &= ~E1000_PHY_CTRL_NOND0A_LPLU; 7134 - E1000_WRITE_REG(hw, PHY_CTRL, phy_ctrl); 7134 + ew32(PHY_CTRL, phy_ctrl); 7135 7135 } else { 7136 7136 phy_data &= ~IGP02E1000_PM_D3_LPLU; 7137 7137 ret_val = e1000_write_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, ··· 7182 7182 } else { 7183 7183 if (hw->mac_type == e1000_ich8lan) { 7184 7184 phy_ctrl |= E1000_PHY_CTRL_NOND0A_LPLU; 7185 - E1000_WRITE_REG(hw, PHY_CTRL, phy_ctrl); 7185 + ew32(PHY_CTRL, phy_ctrl); 7186 7186 } else { 7187 7187 phy_data |= IGP02E1000_PM_D3_LPLU; 7188 7188 ret_val = e1000_write_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, ··· 7231 7231 return E1000_SUCCESS; 7232 7232 7233 7233 if (hw->mac_type == e1000_ich8lan) { 7234 - phy_ctrl = E1000_READ_REG(hw, PHY_CTRL); 7234 + phy_ctrl = er32(PHY_CTRL); 7235 7235 } else { 7236 7236 ret_val = e1000_read_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, &phy_data); 7237 7237 if (ret_val) ··· 7241 7241 if (!active) { 7242 7242 if (hw->mac_type == e1000_ich8lan) { 7243 7243 phy_ctrl &= ~E1000_PHY_CTRL_D0A_LPLU; 7244 - E1000_WRITE_REG(hw, PHY_CTRL, phy_ctrl); 7244 + ew32(PHY_CTRL, phy_ctrl); 7245 7245 } else { 7246 7246 phy_data &= ~IGP02E1000_PM_D0_LPLU; 7247 7247 ret_val = e1000_write_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, phy_data); ··· 7282 7282 7283 7283 if (hw->mac_type == e1000_ich8lan) { 7284 7284 phy_ctrl |= E1000_PHY_CTRL_D0A_LPLU; 7285 - E1000_WRITE_REG(hw, PHY_CTRL, phy_ctrl); 7285 + ew32(PHY_CTRL, phy_ctrl); 7286 7286 } else { 7287 7287 phy_data |= IGP02E1000_PM_D0_LPLU; 7288 7288 ret_val = e1000_write_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, phy_data); ··· 7404 7404 u8 i; 7405 7405 7406 7406 /* Check that the host interface is enabled. */ 7407 - hicr = E1000_READ_REG(hw, HICR); 7407 + hicr = er32(HICR); 7408 7408 if ((hicr & E1000_HICR_EN) == 0) { 7409 7409 DEBUGOUT("E1000_HOST_EN bit disabled.\n"); 7410 7410 return -E1000_ERR_HOST_INTERFACE_COMMAND; 7411 7411 } 7412 7412 /* check the previous command is completed */ 7413 7413 for (i = 0; i < E1000_MNG_DHCP_COMMAND_TIMEOUT; i++) { 7414 - hicr = E1000_READ_REG(hw, HICR); 7414 + hicr = er32(HICR); 7415 7415 if (!(hicr & E1000_HICR_C)) 7416 7416 break; 7417 7417 mdelay(1); ··· 7524 7524 /* The device driver writes the relevant command block into the ram area. */ 7525 7525 for (i = 0; i < length; i++) { 7526 7526 E1000_WRITE_REG_ARRAY_DWORD(hw, HOST_IF, i, *((u32 *) hdr + i)); 7527 - E1000_WRITE_FLUSH(hw); 7527 + E1000_WRITE_FLUSH(); 7528 7528 } 7529 7529 7530 7530 return E1000_SUCCESS; ··· 7541 7541 { 7542 7542 u32 hicr; 7543 7543 7544 - hicr = E1000_READ_REG(hw, HICR); 7544 + hicr = er32(HICR); 7545 7545 /* Setting this bit tells the ARC that a new command is pending. */ 7546 - E1000_WRITE_REG(hw, HICR, hicr | E1000_HICR_C); 7546 + ew32(HICR, hicr | E1000_HICR_C); 7547 7547 7548 7548 return E1000_SUCCESS; 7549 7549 } ··· 7558 7558 { 7559 7559 u32 fwsm; 7560 7560 7561 - fwsm = E1000_READ_REG(hw, FWSM); 7561 + fwsm = er32(FWSM); 7562 7562 7563 7563 if (hw->mac_type == e1000_ich8lan) { 7564 7564 if ((fwsm & E1000_FWSM_MODE_MASK) == ··· 7671 7671 u32 fwsm, factps; 7672 7672 7673 7673 if (hw->asf_firmware_present) { 7674 - manc = E1000_READ_REG(hw, MANC); 7674 + manc = er32(MANC); 7675 7675 7676 7676 if (!(manc & E1000_MANC_RCV_TCO_EN) || 7677 7677 !(manc & E1000_MANC_EN_MAC_ADDR_FILTER)) 7678 7678 return false; 7679 7679 if (e1000_arc_subsystem_valid(hw)) { 7680 - fwsm = E1000_READ_REG(hw, FWSM); 7681 - factps = E1000_READ_REG(hw, FACTPS); 7680 + fwsm = er32(FWSM); 7681 + factps = er32(FACTPS); 7682 7682 7683 7683 if ((((fwsm & E1000_FWSM_MODE_MASK) >> E1000_FWSM_MODE_SHIFT) == 7684 7684 e1000_mng_mode_pt) && !(factps & E1000_FACTPS_MNGCG)) ··· 7792 7792 if (hw->bus_type != e1000_bus_type_pci_express) 7793 7793 return; 7794 7794 7795 - ctrl = E1000_READ_REG(hw, CTRL); 7795 + ctrl = er32(CTRL); 7796 7796 ctrl |= E1000_CTRL_GIO_MASTER_DISABLE; 7797 - E1000_WRITE_REG(hw, CTRL, ctrl); 7797 + ew32(CTRL, ctrl); 7798 7798 } 7799 7799 7800 7800 /******************************************************************************* ··· 7820 7820 e1000_set_pci_express_master_disable(hw); 7821 7821 7822 7822 while (timeout) { 7823 - if (!(E1000_READ_REG(hw, STATUS) & E1000_STATUS_GIO_MASTER_ENABLE)) 7823 + if (!(er32(STATUS) & E1000_STATUS_GIO_MASTER_ENABLE)) 7824 7824 break; 7825 7825 else 7826 7826 udelay(100); ··· 7861 7861 case e1000_80003es2lan: 7862 7862 case e1000_ich8lan: 7863 7863 while (timeout) { 7864 - if (E1000_READ_REG(hw, EECD) & E1000_EECD_AUTO_RD) 7864 + if (er32(EECD) & E1000_EECD_AUTO_RD) 7865 7865 break; 7866 7866 else msleep(1); 7867 7867 timeout--; ··· 7905 7905 break; 7906 7906 case e1000_80003es2lan: 7907 7907 /* Separate *_CFG_DONE_* bit for each port */ 7908 - if (E1000_READ_REG(hw, STATUS) & E1000_STATUS_FUNC_1) 7908 + if (er32(STATUS) & E1000_STATUS_FUNC_1) 7909 7909 cfg_mask = E1000_EEPROM_CFG_DONE_PORT_1; 7910 7910 /* Fall Through */ 7911 7911 case e1000_82571: 7912 7912 case e1000_82572: 7913 7913 while (timeout) { 7914 - if (E1000_READ_REG(hw, EEMNGCTL) & cfg_mask) 7914 + if (er32(EEMNGCTL) & cfg_mask) 7915 7915 break; 7916 7916 else 7917 7917 msleep(1); ··· 7957 7957 /* Get the FW semaphore. */ 7958 7958 timeout = hw->eeprom.word_size + 1; 7959 7959 while (timeout) { 7960 - swsm = E1000_READ_REG(hw, SWSM); 7960 + swsm = er32(SWSM); 7961 7961 swsm |= E1000_SWSM_SWESMBI; 7962 - E1000_WRITE_REG(hw, SWSM, swsm); 7962 + ew32(SWSM, swsm); 7963 7963 /* if we managed to set the bit we got the semaphore. */ 7964 - swsm = E1000_READ_REG(hw, SWSM); 7964 + swsm = er32(SWSM); 7965 7965 if (swsm & E1000_SWSM_SWESMBI) 7966 7966 break; 7967 7967 ··· 7996 7996 if (!hw->eeprom_semaphore_present) 7997 7997 return; 7998 7998 7999 - swsm = E1000_READ_REG(hw, SWSM); 7999 + swsm = er32(SWSM); 8000 8000 if (hw->mac_type == e1000_80003es2lan) { 8001 8001 /* Release both semaphores. */ 8002 8002 swsm &= ~(E1000_SWSM_SMBI | E1000_SWSM_SWESMBI); 8003 8003 } else 8004 8004 swsm &= ~(E1000_SWSM_SWESMBI); 8005 - E1000_WRITE_REG(hw, SWSM, swsm); 8005 + ew32(SWSM, swsm); 8006 8006 } 8007 8007 8008 8008 /*************************************************************************** ··· 8027 8027 } 8028 8028 8029 8029 while (timeout) { 8030 - swsm = E1000_READ_REG(hw, SWSM); 8030 + swsm = er32(SWSM); 8031 8031 /* If SMBI bit cleared, it is now set and we hold the semaphore */ 8032 8032 if (!(swsm & E1000_SWSM_SMBI)) 8033 8033 break; ··· 8060 8060 return; 8061 8061 } 8062 8062 8063 - swsm = E1000_READ_REG(hw, SWSM); 8063 + swsm = er32(SWSM); 8064 8064 /* Release the SW semaphores.*/ 8065 8065 swsm &= ~E1000_SWSM_SMBI; 8066 - E1000_WRITE_REG(hw, SWSM, swsm); 8066 + ew32(SWSM, swsm); 8067 8067 } 8068 8068 8069 8069 /****************************************************************************** ··· 8083 8083 u32 fwsm = 0; 8084 8084 8085 8085 if (hw->mac_type == e1000_ich8lan) { 8086 - fwsm = E1000_READ_REG(hw, FWSM); 8086 + fwsm = er32(FWSM); 8087 8087 return (fwsm & E1000_FWSM_RSPCIPHY) ? E1000_SUCCESS 8088 8088 : E1000_BLK_PHY_RESET; 8089 8089 } 8090 8090 8091 8091 if (hw->mac_type > e1000_82547_rev_2) 8092 - manc = E1000_READ_REG(hw, MANC); 8092 + manc = er32(MANC); 8093 8093 return (manc & E1000_MANC_BLK_PHY_RST_ON_IDE) ? 8094 8094 E1000_BLK_PHY_RESET : E1000_SUCCESS; 8095 8095 } ··· 8108 8108 case e1000_82572: 8109 8109 case e1000_82573: 8110 8110 case e1000_80003es2lan: 8111 - fwsm = E1000_READ_REG(hw, FWSM); 8111 + fwsm = er32(FWSM); 8112 8112 if ((fwsm & E1000_FWSM_MODE_MASK) != 0) 8113 8113 return true; 8114 8114 break; ··· 8143 8143 return E1000_SUCCESS; 8144 8144 8145 8145 if (no_snoop) { 8146 - gcr_reg = E1000_READ_REG(hw, GCR); 8146 + gcr_reg = er32(GCR); 8147 8147 gcr_reg &= ~(PCI_EX_NO_SNOOP_ALL); 8148 8148 gcr_reg |= no_snoop; 8149 - E1000_WRITE_REG(hw, GCR, gcr_reg); 8149 + ew32(GCR, gcr_reg); 8150 8150 } 8151 8151 if (hw->mac_type == e1000_ich8lan) { 8152 8152 u32 ctrl_ext; 8153 8153 8154 - E1000_WRITE_REG(hw, GCR, PCI_EX_82566_SNOOP_ALL); 8154 + ew32(GCR, PCI_EX_82566_SNOOP_ALL); 8155 8155 8156 - ctrl_ext = E1000_READ_REG(hw, CTRL_EXT); 8156 + ctrl_ext = er32(CTRL_EXT); 8157 8157 ctrl_ext |= E1000_CTRL_EXT_RO_DIS; 8158 - E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext); 8158 + ew32(CTRL_EXT, ctrl_ext); 8159 8159 } 8160 8160 8161 8161 return E1000_SUCCESS; ··· 8179 8179 8180 8180 if (hw->mac_type == e1000_ich8lan) { 8181 8181 while (timeout) { 8182 - extcnf_ctrl = E1000_READ_REG(hw, EXTCNF_CTRL); 8182 + extcnf_ctrl = er32(EXTCNF_CTRL); 8183 8183 extcnf_ctrl |= E1000_EXTCNF_CTRL_SWFLAG; 8184 - E1000_WRITE_REG(hw, EXTCNF_CTRL, extcnf_ctrl); 8184 + ew32(EXTCNF_CTRL, extcnf_ctrl); 8185 8185 8186 - extcnf_ctrl = E1000_READ_REG(hw, EXTCNF_CTRL); 8186 + extcnf_ctrl = er32(EXTCNF_CTRL); 8187 8187 if (extcnf_ctrl & E1000_EXTCNF_CTRL_SWFLAG) 8188 8188 break; 8189 8189 mdelay(1); ··· 8215 8215 DEBUGFUNC("e1000_release_software_flag"); 8216 8216 8217 8217 if (hw->mac_type == e1000_ich8lan) { 8218 - extcnf_ctrl= E1000_READ_REG(hw, EXTCNF_CTRL); 8218 + extcnf_ctrl= er32(EXTCNF_CTRL); 8219 8219 extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG; 8220 - E1000_WRITE_REG(hw, EXTCNF_CTRL, extcnf_ctrl); 8220 + ew32(EXTCNF_CTRL, extcnf_ctrl); 8221 8221 } 8222 8222 8223 8223 return; ··· 8248 8248 * to be updated with each read. 8249 8249 */ 8250 8250 /* Value of bit 22 corresponds to the flash bank we're on. */ 8251 - flash_bank = (E1000_READ_REG(hw, EECD) & E1000_EECD_SEC1VAL) ? 1 : 0; 8251 + flash_bank = (er32(EECD) & E1000_EECD_SEC1VAL) ? 1 : 0; 8252 8252 8253 8253 /* Adjust offset appropriately if we're on bank 1 - adjust for word size */ 8254 8254 bank_offset = flash_bank * (hw->flash_bank_size * 2); ··· 8813 8813 return E1000_SUCCESS; 8814 8814 8815 8815 /* Check if SW needs configure the PHY */ 8816 - reg_data = E1000_READ_REG(hw, FEXTNVM); 8816 + reg_data = er32(FEXTNVM); 8817 8817 if (!(reg_data & FEXTNVM_SW_CONFIG)) 8818 8818 return E1000_SUCCESS; 8819 8819 8820 8820 /* Wait for basic configuration completes before proceeding*/ 8821 8821 loop = 0; 8822 8822 do { 8823 - reg_data = E1000_READ_REG(hw, STATUS) & E1000_STATUS_LAN_INIT_DONE; 8823 + reg_data = er32(STATUS) & E1000_STATUS_LAN_INIT_DONE; 8824 8824 udelay(100); 8825 8825 loop++; 8826 8826 } while ((!reg_data) && (loop < 50)); 8827 8827 8828 8828 /* Clear the Init Done bit for the next init event */ 8829 - reg_data = E1000_READ_REG(hw, STATUS); 8829 + reg_data = er32(STATUS); 8830 8830 reg_data &= ~E1000_STATUS_LAN_INIT_DONE; 8831 - E1000_WRITE_REG(hw, STATUS, reg_data); 8831 + ew32(STATUS, reg_data); 8832 8832 8833 8833 /* Make sure HW does not configure LCD from PHY extended configuration 8834 8834 before SW configuration */ 8835 - reg_data = E1000_READ_REG(hw, EXTCNF_CTRL); 8835 + reg_data = er32(EXTCNF_CTRL); 8836 8836 if ((reg_data & E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE) == 0x0000) { 8837 - reg_data = E1000_READ_REG(hw, EXTCNF_SIZE); 8837 + reg_data = er32(EXTCNF_SIZE); 8838 8838 cnf_size = reg_data & E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH; 8839 8839 cnf_size >>= 16; 8840 8840 if (cnf_size) { 8841 - reg_data = E1000_READ_REG(hw, EXTCNF_CTRL); 8841 + reg_data = er32(EXTCNF_CTRL); 8842 8842 cnf_base_addr = reg_data & E1000_EXTCNF_CTRL_EXT_CNF_POINTER; 8843 8843 /* cnf_base_addr is in DWORD */ 8844 8844 cnf_base_addr >>= 16;
+465 -431
drivers/net/e1000/e1000_main.c
··· 269 269 270 270 static int e1000_request_irq(struct e1000_adapter *adapter) 271 271 { 272 + struct e1000_hw *hw = &adapter->hw; 272 273 struct net_device *netdev = adapter->netdev; 273 274 irq_handler_t handler = e1000_intr; 274 275 int irq_flags = IRQF_SHARED; 275 276 int err; 276 277 277 - if (adapter->hw.mac_type >= e1000_82571) { 278 + if (hw->mac_type >= e1000_82571) { 278 279 adapter->have_msi = !pci_enable_msi(adapter->pdev); 279 280 if (adapter->have_msi) { 280 281 handler = e1000_intr_msi; ··· 312 311 313 312 static void e1000_irq_disable(struct e1000_adapter *adapter) 314 313 { 315 - E1000_WRITE_REG(&adapter->hw, IMC, ~0); 316 - E1000_WRITE_FLUSH(&adapter->hw); 314 + struct e1000_hw *hw = &adapter->hw; 315 + 316 + ew32(IMC, ~0); 317 + E1000_WRITE_FLUSH(); 317 318 synchronize_irq(adapter->pdev->irq); 318 319 } 319 320 ··· 326 323 327 324 static void e1000_irq_enable(struct e1000_adapter *adapter) 328 325 { 329 - E1000_WRITE_REG(&adapter->hw, IMS, IMS_ENABLE_MASK); 330 - E1000_WRITE_FLUSH(&adapter->hw); 326 + struct e1000_hw *hw = &adapter->hw; 327 + 328 + ew32(IMS, IMS_ENABLE_MASK); 329 + E1000_WRITE_FLUSH(); 331 330 } 332 331 333 332 static void e1000_update_mng_vlan(struct e1000_adapter *adapter) 334 333 { 334 + struct e1000_hw *hw = &adapter->hw; 335 335 struct net_device *netdev = adapter->netdev; 336 - u16 vid = adapter->hw.mng_cookie.vlan_id; 336 + u16 vid = hw->mng_cookie.vlan_id; 337 337 u16 old_vid = adapter->mng_vlan_id; 338 338 if (adapter->vlgrp) { 339 339 if (!vlan_group_get_device(adapter->vlgrp, vid)) { 340 - if (adapter->hw.mng_cookie.status & 340 + if (hw->mng_cookie.status & 341 341 E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) { 342 342 e1000_vlan_rx_add_vid(netdev, vid); 343 343 adapter->mng_vlan_id = vid; ··· 371 365 { 372 366 u32 ctrl_ext; 373 367 u32 swsm; 368 + struct e1000_hw *hw = &adapter->hw; 374 369 375 370 /* Let firmware taken over control of h/w */ 376 - switch (adapter->hw.mac_type) { 371 + switch (hw->mac_type) { 377 372 case e1000_82573: 378 - swsm = E1000_READ_REG(&adapter->hw, SWSM); 379 - E1000_WRITE_REG(&adapter->hw, SWSM, 380 - swsm & ~E1000_SWSM_DRV_LOAD); 373 + swsm = er32(SWSM); 374 + ew32(SWSM, swsm & ~E1000_SWSM_DRV_LOAD); 381 375 break; 382 376 case e1000_82571: 383 377 case e1000_82572: 384 378 case e1000_80003es2lan: 385 379 case e1000_ich8lan: 386 - ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT); 387 - E1000_WRITE_REG(&adapter->hw, CTRL_EXT, 388 - ctrl_ext & ~E1000_CTRL_EXT_DRV_LOAD); 380 + ctrl_ext = er32(CTRL_EXT); 381 + ew32(CTRL_EXT, ctrl_ext & ~E1000_CTRL_EXT_DRV_LOAD); 389 382 break; 390 383 default: 391 384 break; ··· 406 401 { 407 402 u32 ctrl_ext; 408 403 u32 swsm; 404 + struct e1000_hw *hw = &adapter->hw; 409 405 410 406 /* Let firmware know the driver has taken over */ 411 - switch (adapter->hw.mac_type) { 407 + switch (hw->mac_type) { 412 408 case e1000_82573: 413 - swsm = E1000_READ_REG(&adapter->hw, SWSM); 414 - E1000_WRITE_REG(&adapter->hw, SWSM, 415 - swsm | E1000_SWSM_DRV_LOAD); 409 + swsm = er32(SWSM); 410 + ew32(SWSM, swsm | E1000_SWSM_DRV_LOAD); 416 411 break; 417 412 case e1000_82571: 418 413 case e1000_82572: 419 414 case e1000_80003es2lan: 420 415 case e1000_ich8lan: 421 - ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT); 422 - E1000_WRITE_REG(&adapter->hw, CTRL_EXT, 423 - ctrl_ext | E1000_CTRL_EXT_DRV_LOAD); 416 + ctrl_ext = er32(CTRL_EXT); 417 + ew32(CTRL_EXT, ctrl_ext | E1000_CTRL_EXT_DRV_LOAD); 424 418 break; 425 419 default: 426 420 break; ··· 428 424 429 425 static void e1000_init_manageability(struct e1000_adapter *adapter) 430 426 { 427 + struct e1000_hw *hw = &adapter->hw; 428 + 431 429 if (adapter->en_mng_pt) { 432 - u32 manc = E1000_READ_REG(&adapter->hw, MANC); 430 + u32 manc = er32(MANC); 433 431 434 432 /* disable hardware interception of ARP */ 435 433 manc &= ~(E1000_MANC_ARP_EN); ··· 439 433 /* enable receiving management packets to the host */ 440 434 /* this will probably generate destination unreachable messages 441 435 * from the host OS, but the packets will be handled on SMBUS */ 442 - if (adapter->hw.has_manc2h) { 443 - u32 manc2h = E1000_READ_REG(&adapter->hw, MANC2H); 436 + if (hw->has_manc2h) { 437 + u32 manc2h = er32(MANC2H); 444 438 445 439 manc |= E1000_MANC_EN_MNG2HOST; 446 440 #define E1000_MNG2HOST_PORT_623 (1 << 5) 447 441 #define E1000_MNG2HOST_PORT_664 (1 << 6) 448 442 manc2h |= E1000_MNG2HOST_PORT_623; 449 443 manc2h |= E1000_MNG2HOST_PORT_664; 450 - E1000_WRITE_REG(&adapter->hw, MANC2H, manc2h); 444 + ew32(MANC2H, manc2h); 451 445 } 452 446 453 - E1000_WRITE_REG(&adapter->hw, MANC, manc); 447 + ew32(MANC, manc); 454 448 } 455 449 } 456 450 457 451 static void e1000_release_manageability(struct e1000_adapter *adapter) 458 452 { 453 + struct e1000_hw *hw = &adapter->hw; 454 + 459 455 if (adapter->en_mng_pt) { 460 - u32 manc = E1000_READ_REG(&adapter->hw, MANC); 456 + u32 manc = er32(MANC); 461 457 462 458 /* re-enable hardware interception of ARP */ 463 459 manc |= E1000_MANC_ARP_EN; 464 460 465 - if (adapter->hw.has_manc2h) 461 + if (hw->has_manc2h) 466 462 manc &= ~E1000_MANC_EN_MNG2HOST; 467 463 468 464 /* don't explicitly have to mess with MANC2H since 469 465 * MANC has an enable disable that gates MANC2H */ 470 466 471 - E1000_WRITE_REG(&adapter->hw, MANC, manc); 467 + ew32(MANC, manc); 472 468 } 473 469 } 474 470 ··· 505 497 506 498 int e1000_up(struct e1000_adapter *adapter) 507 499 { 500 + struct e1000_hw *hw = &adapter->hw; 501 + 508 502 /* hardware has been reset, we need to reload some things */ 509 503 e1000_configure(adapter); 510 504 ··· 518 508 e1000_irq_enable(adapter); 519 509 520 510 /* fire a link change interrupt to start the watchdog */ 521 - E1000_WRITE_REG(&adapter->hw, ICS, E1000_ICS_LSC); 511 + ew32(ICS, E1000_ICS_LSC); 522 512 return 0; 523 513 } 524 514 ··· 534 524 535 525 void e1000_power_up_phy(struct e1000_adapter *adapter) 536 526 { 527 + struct e1000_hw *hw = &adapter->hw; 537 528 u16 mii_reg = 0; 538 529 539 530 /* Just clear the power down bit to wake the phy back up */ 540 - if (adapter->hw.media_type == e1000_media_type_copper) { 531 + if (hw->media_type == e1000_media_type_copper) { 541 532 /* according to the manual, the phy will retain its 542 533 * settings across a power-down/up cycle */ 543 - e1000_read_phy_reg(&adapter->hw, PHY_CTRL, &mii_reg); 534 + e1000_read_phy_reg(hw, PHY_CTRL, &mii_reg); 544 535 mii_reg &= ~MII_CR_POWER_DOWN; 545 - e1000_write_phy_reg(&adapter->hw, PHY_CTRL, mii_reg); 536 + e1000_write_phy_reg(hw, PHY_CTRL, mii_reg); 546 537 } 547 538 } 548 539 549 540 static void e1000_power_down_phy(struct e1000_adapter *adapter) 550 541 { 542 + struct e1000_hw *hw = &adapter->hw; 543 + 551 544 /* Power down the PHY so no link is implied when interface is down * 552 545 * The PHY cannot be powered down if any of the following is true * 553 546 * (a) WoL is enabled 554 547 * (b) AMT is active 555 548 * (c) SoL/IDER session is active */ 556 - if (!adapter->wol && adapter->hw.mac_type >= e1000_82540 && 557 - adapter->hw.media_type == e1000_media_type_copper) { 549 + if (!adapter->wol && hw->mac_type >= e1000_82540 && 550 + hw->media_type == e1000_media_type_copper) { 558 551 u16 mii_reg = 0; 559 552 560 - switch (adapter->hw.mac_type) { 553 + switch (hw->mac_type) { 561 554 case e1000_82540: 562 555 case e1000_82545: 563 556 case e1000_82545_rev_3: ··· 570 557 case e1000_82541_rev_2: 571 558 case e1000_82547: 572 559 case e1000_82547_rev_2: 573 - if (E1000_READ_REG(&adapter->hw, MANC) & 574 - E1000_MANC_SMBUS_EN) 560 + if (er32(MANC) & E1000_MANC_SMBUS_EN) 575 561 goto out; 576 562 break; 577 563 case e1000_82571: ··· 578 566 case e1000_82573: 579 567 case e1000_80003es2lan: 580 568 case e1000_ich8lan: 581 - if (e1000_check_mng_mode(&adapter->hw) || 582 - e1000_check_phy_reset_block(&adapter->hw)) 569 + if (e1000_check_mng_mode(hw) || 570 + e1000_check_phy_reset_block(hw)) 583 571 goto out; 584 572 break; 585 573 default: 586 574 goto out; 587 575 } 588 - e1000_read_phy_reg(&adapter->hw, PHY_CTRL, &mii_reg); 576 + e1000_read_phy_reg(hw, PHY_CTRL, &mii_reg); 589 577 mii_reg |= MII_CR_POWER_DOWN; 590 - e1000_write_phy_reg(&adapter->hw, PHY_CTRL, mii_reg); 578 + e1000_write_phy_reg(hw, PHY_CTRL, mii_reg); 591 579 mdelay(1); 592 580 } 593 581 out: ··· 634 622 635 623 void e1000_reset(struct e1000_adapter *adapter) 636 624 { 625 + struct e1000_hw *hw = &adapter->hw; 637 626 u32 pba = 0, tx_space, min_tx_space, min_rx_space; 638 627 u16 fc_high_water_mark = E1000_FC_HIGH_DIFF; 639 628 bool legacy_pba_adjust = false; ··· 643 630 * To take effect CTRL.RST is required. 644 631 */ 645 632 646 - switch (adapter->hw.mac_type) { 633 + switch (hw->mac_type) { 647 634 case e1000_82542_rev2_0: 648 635 case e1000_82542_rev2_1: 649 636 case e1000_82543: ··· 684 671 if (adapter->netdev->mtu > E1000_RXBUFFER_8192) 685 672 pba -= 8; /* allocate more FIFO for Tx */ 686 673 687 - if (adapter->hw.mac_type == e1000_82547) { 674 + if (hw->mac_type == e1000_82547) { 688 675 adapter->tx_fifo_head = 0; 689 676 adapter->tx_head_addr = pba << E1000_TX_HEAD_ADDR_SHIFT; 690 677 adapter->tx_fifo_size = 691 678 (E1000_PBA_40K - pba) << E1000_PBA_BYTES_SHIFT; 692 679 atomic_set(&adapter->tx_fifo_stall, 0); 693 680 } 694 - } else if (adapter->hw.max_frame_size > MAXIMUM_ETHERNET_FRAME_SIZE) { 681 + } else if (hw->max_frame_size > MAXIMUM_ETHERNET_FRAME_SIZE) { 695 682 /* adjust PBA for jumbo frames */ 696 - E1000_WRITE_REG(&adapter->hw, PBA, pba); 683 + ew32(PBA, pba); 697 684 698 685 /* To maintain wire speed transmits, the Tx FIFO should be 699 686 * large enough to accomodate two full transmit packets, ··· 701 688 * the Rx FIFO should be large enough to accomodate at least 702 689 * one full receive packet and is similarly rounded up and 703 690 * expressed in KB. */ 704 - pba = E1000_READ_REG(&adapter->hw, PBA); 691 + pba = er32(PBA); 705 692 /* upper 16 bits has Tx packet buffer allocation size in KB */ 706 693 tx_space = pba >> 16; 707 694 /* lower 16 bits has Rx packet buffer allocation size in KB */ ··· 724 711 pba = pba - (min_tx_space - tx_space); 725 712 726 713 /* PCI/PCIx hardware has PBA alignment constraints */ 727 - switch (adapter->hw.mac_type) { 714 + switch (hw->mac_type) { 728 715 case e1000_82545 ... e1000_82546_rev_3: 729 716 pba &= ~(E1000_PBA_8K - 1); 730 717 break; ··· 735 722 /* if short on rx space, rx wins and must trump tx 736 723 * adjustment or use Early Receive if available */ 737 724 if (pba < min_rx_space) { 738 - switch (adapter->hw.mac_type) { 725 + switch (hw->mac_type) { 739 726 case e1000_82573: 740 727 /* ERT enabled in e1000_configure_rx */ 741 728 break; ··· 747 734 } 748 735 } 749 736 750 - E1000_WRITE_REG(&adapter->hw, PBA, pba); 737 + ew32(PBA, pba); 751 738 752 739 /* flow control settings */ 753 740 /* Set the FC high water mark to 90% of the FIFO size. ··· 760 747 if (pba < E1000_PBA_16K) 761 748 fc_high_water_mark = (pba * 1024) - 1600; 762 749 763 - adapter->hw.fc_high_water = fc_high_water_mark; 764 - adapter->hw.fc_low_water = fc_high_water_mark - 8; 765 - if (adapter->hw.mac_type == e1000_80003es2lan) 766 - adapter->hw.fc_pause_time = 0xFFFF; 750 + hw->fc_high_water = fc_high_water_mark; 751 + hw->fc_low_water = fc_high_water_mark - 8; 752 + if (hw->mac_type == e1000_80003es2lan) 753 + hw->fc_pause_time = 0xFFFF; 767 754 else 768 - adapter->hw.fc_pause_time = E1000_FC_PAUSE_TIME; 769 - adapter->hw.fc_send_xon = 1; 770 - adapter->hw.fc = adapter->hw.original_fc; 755 + hw->fc_pause_time = E1000_FC_PAUSE_TIME; 756 + hw->fc_send_xon = 1; 757 + hw->fc = hw->original_fc; 771 758 772 759 /* Allow time for pending master requests to run */ 773 - e1000_reset_hw(&adapter->hw); 774 - if (adapter->hw.mac_type >= e1000_82544) 775 - E1000_WRITE_REG(&adapter->hw, WUC, 0); 760 + e1000_reset_hw(hw); 761 + if (hw->mac_type >= e1000_82544) 762 + ew32(WUC, 0); 776 763 777 - if (e1000_init_hw(&adapter->hw)) 764 + if (e1000_init_hw(hw)) 778 765 DPRINTK(PROBE, ERR, "Hardware Error\n"); 779 766 e1000_update_mng_vlan(adapter); 780 767 781 768 /* if (adapter->hwflags & HWFLAGS_PHY_PWR_BIT) { */ 782 - if (adapter->hw.mac_type >= e1000_82544 && 783 - adapter->hw.mac_type <= e1000_82547_rev_2 && 784 - adapter->hw.autoneg == 1 && 785 - adapter->hw.autoneg_advertised == ADVERTISE_1000_FULL) { 786 - u32 ctrl = E1000_READ_REG(&adapter->hw, CTRL); 769 + if (hw->mac_type >= e1000_82544 && 770 + hw->mac_type <= e1000_82547_rev_2 && 771 + hw->autoneg == 1 && 772 + hw->autoneg_advertised == ADVERTISE_1000_FULL) { 773 + u32 ctrl = er32(CTRL); 787 774 /* clear phy power management bit if we are in gig only mode, 788 775 * which if enabled will attempt negotiation to 100Mb, which 789 776 * can cause a loss of link at power off or driver unload */ 790 777 ctrl &= ~E1000_CTRL_SWDPIN3; 791 - E1000_WRITE_REG(&adapter->hw, CTRL, ctrl); 778 + ew32(CTRL, ctrl); 792 779 } 793 780 794 781 /* Enable h/w to recognize an 802.1Q VLAN Ethernet packet */ 795 - E1000_WRITE_REG(&adapter->hw, VET, ETHERNET_IEEE_VLAN_TYPE); 782 + ew32(VET, ETHERNET_IEEE_VLAN_TYPE); 796 783 797 - e1000_reset_adaptive(&adapter->hw); 798 - e1000_phy_get_info(&adapter->hw, &adapter->phy_info); 784 + e1000_reset_adaptive(hw); 785 + e1000_phy_get_info(hw, &adapter->phy_info); 799 786 800 787 if (!adapter->smart_power_down && 801 - (adapter->hw.mac_type == e1000_82571 || 802 - adapter->hw.mac_type == e1000_82572)) { 788 + (hw->mac_type == e1000_82571 || 789 + hw->mac_type == e1000_82572)) { 803 790 u16 phy_data = 0; 804 791 /* speed up time to link by disabling smart power down, ignore 805 792 * the return value of this function because there is nothing 806 793 * different we would do if it failed */ 807 - e1000_read_phy_reg(&adapter->hw, IGP02E1000_PHY_POWER_MGMT, 794 + e1000_read_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, 808 795 &phy_data); 809 796 phy_data &= ~IGP02E1000_PM_SPD; 810 - e1000_write_phy_reg(&adapter->hw, IGP02E1000_PHY_POWER_MGMT, 797 + e1000_write_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, 811 798 phy_data); 812 799 } 813 800 ··· 884 871 * and a hardware reset occur. 885 872 **/ 886 873 887 - static int __devinit 888 - e1000_probe(struct pci_dev *pdev, 889 - const struct pci_device_id *ent) 874 + static int __devinit e1000_probe(struct pci_dev *pdev, 875 + const struct pci_device_id *ent) 890 876 { 891 877 struct net_device *netdev; 892 878 struct e1000_adapter *adapter; 879 + struct e1000_hw *hw; 893 880 894 881 static int cards_found = 0; 895 882 static int global_quad_port_a = 0; /* global ksp3 port a indication */ ··· 929 916 adapter = netdev_priv(netdev); 930 917 adapter->netdev = netdev; 931 918 adapter->pdev = pdev; 932 - adapter->hw.back = adapter; 933 919 adapter->msg_enable = (1 << debug) - 1; 934 920 921 + hw = &adapter->hw; 922 + hw->back = adapter; 923 + 935 924 err = -EIO; 936 - adapter->hw.hw_addr = ioremap(pci_resource_start(pdev, BAR_0), 937 - pci_resource_len(pdev, BAR_0)); 938 - if (!adapter->hw.hw_addr) 925 + hw->hw_addr = ioremap(pci_resource_start(pdev, BAR_0), 926 + pci_resource_len(pdev, BAR_0)); 927 + if (!hw->hw_addr) 939 928 goto err_ioremap; 940 929 941 930 for (i = BAR_1; i <= BAR_5; i++) { 942 931 if (pci_resource_len(pdev, i) == 0) 943 932 continue; 944 933 if (pci_resource_flags(pdev, i) & IORESOURCE_IO) { 945 - adapter->hw.io_base = pci_resource_start(pdev, i); 934 + hw->io_base = pci_resource_start(pdev, i); 946 935 break; 947 936 } 948 937 } ··· 981 966 err = -EIO; 982 967 /* Flash BAR mapping must happen after e1000_sw_init 983 968 * because it depends on mac_type */ 984 - if ((adapter->hw.mac_type == e1000_ich8lan) && 969 + if ((hw->mac_type == e1000_ich8lan) && 985 970 (pci_resource_flags(pdev, 1) & IORESOURCE_MEM)) { 986 - adapter->hw.flash_address = 971 + hw->flash_address = 987 972 ioremap(pci_resource_start(pdev, 1), 988 973 pci_resource_len(pdev, 1)); 989 - if (!adapter->hw.flash_address) 974 + if (!hw->flash_address) 990 975 goto err_flashmap; 991 976 } 992 977 993 - if (e1000_check_phy_reset_block(&adapter->hw)) 978 + if (e1000_check_phy_reset_block(hw)) 994 979 DPRINTK(PROBE, INFO, "PHY reset is blocked due to SOL/IDER session.\n"); 995 980 996 - if (adapter->hw.mac_type >= e1000_82543) { 981 + if (hw->mac_type >= e1000_82543) { 997 982 netdev->features = NETIF_F_SG | 998 983 NETIF_F_HW_CSUM | 999 984 NETIF_F_HW_VLAN_TX | 1000 985 NETIF_F_HW_VLAN_RX | 1001 986 NETIF_F_HW_VLAN_FILTER; 1002 - if (adapter->hw.mac_type == e1000_ich8lan) 987 + if (hw->mac_type == e1000_ich8lan) 1003 988 netdev->features &= ~NETIF_F_HW_VLAN_FILTER; 1004 989 } 1005 990 1006 - if ((adapter->hw.mac_type >= e1000_82544) && 1007 - (adapter->hw.mac_type != e1000_82547)) 991 + if ((hw->mac_type >= e1000_82544) && 992 + (hw->mac_type != e1000_82547)) 1008 993 netdev->features |= NETIF_F_TSO; 1009 994 1010 - if (adapter->hw.mac_type > e1000_82547_rev_2) 995 + if (hw->mac_type > e1000_82547_rev_2) 1011 996 netdev->features |= NETIF_F_TSO6; 1012 997 if (pci_using_dac) 1013 998 netdev->features |= NETIF_F_HIGHDMA; 1014 999 1015 1000 netdev->features |= NETIF_F_LLTX; 1016 1001 1017 - adapter->en_mng_pt = e1000_enable_mng_pass_thru(&adapter->hw); 1002 + adapter->en_mng_pt = e1000_enable_mng_pass_thru(hw); 1018 1003 1019 1004 /* initialize eeprom parameters */ 1020 - if (e1000_init_eeprom_params(&adapter->hw)) { 1005 + if (e1000_init_eeprom_params(hw)) { 1021 1006 E1000_ERR("EEPROM initialization failed\n"); 1022 1007 goto err_eeprom; 1023 1008 } ··· 1025 1010 /* before reading the EEPROM, reset the controller to 1026 1011 * put the device in a known good starting state */ 1027 1012 1028 - e1000_reset_hw(&adapter->hw); 1013 + e1000_reset_hw(hw); 1029 1014 1030 1015 /* make sure the EEPROM is good */ 1031 - if (e1000_validate_eeprom_checksum(&adapter->hw) < 0) { 1016 + if (e1000_validate_eeprom_checksum(hw) < 0) { 1032 1017 DPRINTK(PROBE, ERR, "The EEPROM Checksum Is Not Valid\n"); 1033 1018 e1000_dump_eeprom(adapter); 1034 1019 /* ··· 1039 1024 * interface after manually setting a hw addr using 1040 1025 * `ip set address` 1041 1026 */ 1042 - memset(adapter->hw.mac_addr, 0, netdev->addr_len); 1027 + memset(hw->mac_addr, 0, netdev->addr_len); 1043 1028 } else { 1044 1029 /* copy the MAC address out of the EEPROM */ 1045 - if (e1000_read_mac_addr(&adapter->hw)) 1030 + if (e1000_read_mac_addr(hw)) 1046 1031 DPRINTK(PROBE, ERR, "EEPROM Read Error\n"); 1047 1032 } 1048 1033 /* don't block initalization here due to bad MAC address */ 1049 - memcpy(netdev->dev_addr, adapter->hw.mac_addr, netdev->addr_len); 1050 - memcpy(netdev->perm_addr, adapter->hw.mac_addr, netdev->addr_len); 1034 + memcpy(netdev->dev_addr, hw->mac_addr, netdev->addr_len); 1035 + memcpy(netdev->perm_addr, hw->mac_addr, netdev->addr_len); 1051 1036 1052 1037 if (!is_valid_ether_addr(netdev->perm_addr)) 1053 1038 DPRINTK(PROBE, ERR, "Invalid MAC Address\n"); 1054 1039 1055 - e1000_get_bus_info(&adapter->hw); 1040 + e1000_get_bus_info(hw); 1056 1041 1057 1042 init_timer(&adapter->tx_fifo_stall_timer); 1058 1043 adapter->tx_fifo_stall_timer.function = &e1000_82547_tx_fifo_stall; ··· 1075 1060 * enable the ACPI Magic Packet filter 1076 1061 */ 1077 1062 1078 - switch (adapter->hw.mac_type) { 1063 + switch (hw->mac_type) { 1079 1064 case e1000_82542_rev2_0: 1080 1065 case e1000_82542_rev2_1: 1081 1066 case e1000_82543: 1082 1067 break; 1083 1068 case e1000_82544: 1084 - e1000_read_eeprom(&adapter->hw, 1069 + e1000_read_eeprom(hw, 1085 1070 EEPROM_INIT_CONTROL2_REG, 1, &eeprom_data); 1086 1071 eeprom_apme_mask = E1000_EEPROM_82544_APM; 1087 1072 break; 1088 1073 case e1000_ich8lan: 1089 - e1000_read_eeprom(&adapter->hw, 1074 + e1000_read_eeprom(hw, 1090 1075 EEPROM_INIT_CONTROL1_REG, 1, &eeprom_data); 1091 1076 eeprom_apme_mask = E1000_EEPROM_ICH8_APME; 1092 1077 break; ··· 1094 1079 case e1000_82546_rev_3: 1095 1080 case e1000_82571: 1096 1081 case e1000_80003es2lan: 1097 - if (E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_FUNC_1){ 1098 - e1000_read_eeprom(&adapter->hw, 1082 + if (er32(STATUS) & E1000_STATUS_FUNC_1){ 1083 + e1000_read_eeprom(hw, 1099 1084 EEPROM_INIT_CONTROL3_PORT_B, 1, &eeprom_data); 1100 1085 break; 1101 1086 } 1102 1087 /* Fall Through */ 1103 1088 default: 1104 - e1000_read_eeprom(&adapter->hw, 1089 + e1000_read_eeprom(hw, 1105 1090 EEPROM_INIT_CONTROL3_PORT_A, 1, &eeprom_data); 1106 1091 break; 1107 1092 } ··· 1120 1105 case E1000_DEV_ID_82571EB_FIBER: 1121 1106 /* Wake events only supported on port A for dual fiber 1122 1107 * regardless of eeprom setting */ 1123 - if (E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_FUNC_1) 1108 + if (er32(STATUS) & E1000_STATUS_FUNC_1) 1124 1109 adapter->eeprom_wol = 0; 1125 1110 break; 1126 1111 case E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3: ··· 1143 1128 adapter->wol = adapter->eeprom_wol; 1144 1129 1145 1130 /* print bus type/speed/width info */ 1146 - { 1147 - struct e1000_hw *hw = &adapter->hw; 1148 1131 DPRINTK(PROBE, INFO, "(PCI%s:%s:%s) ", 1149 1132 ((hw->bus_type == e1000_bus_type_pcix) ? "-X" : 1150 1133 (hw->bus_type == e1000_bus_type_pci_express ? " Express":"")), ··· 1155 1142 (hw->bus_width == e1000_bus_width_pciex_4) ? "Width x4" : 1156 1143 (hw->bus_width == e1000_bus_width_pciex_1) ? "Width x1" : 1157 1144 "32-bit")); 1158 - } 1159 1145 1160 1146 printk("%s\n", print_mac(mac, netdev->dev_addr)); 1161 1147 1162 - if (adapter->hw.bus_type == e1000_bus_type_pci_express) { 1148 + if (hw->bus_type == e1000_bus_type_pci_express) { 1163 1149 DPRINTK(PROBE, WARNING, "This device (id %04x:%04x) will no " 1164 1150 "longer be supported by this driver in the future.\n", 1165 1151 pdev->vendor, pdev->device); ··· 1173 1161 * DRV_LOAD until the interface is up. For all other cases, 1174 1162 * let the f/w know that the h/w is now under the control 1175 1163 * of the driver. */ 1176 - if (adapter->hw.mac_type != e1000_82573 || 1177 - !e1000_check_mng_mode(&adapter->hw)) 1164 + if (hw->mac_type != e1000_82573 || 1165 + !e1000_check_mng_mode(hw)) 1178 1166 e1000_get_hw_control(adapter); 1179 1167 1180 1168 /* tell the stack to leave us alone until e1000_open() is called */ ··· 1193 1181 err_register: 1194 1182 e1000_release_hw_control(adapter); 1195 1183 err_eeprom: 1196 - if (!e1000_check_phy_reset_block(&adapter->hw)) 1197 - e1000_phy_hw_reset(&adapter->hw); 1184 + if (!e1000_check_phy_reset_block(hw)) 1185 + e1000_phy_hw_reset(hw); 1198 1186 1199 - if (adapter->hw.flash_address) 1200 - iounmap(adapter->hw.flash_address); 1187 + if (hw->flash_address) 1188 + iounmap(hw->flash_address); 1201 1189 err_flashmap: 1202 1190 #ifdef CONFIG_E1000_NAPI 1203 1191 for (i = 0; i < adapter->num_rx_queues; i++) ··· 1210 1198 kfree(adapter->polling_netdev); 1211 1199 #endif 1212 1200 err_sw_init: 1213 - iounmap(adapter->hw.hw_addr); 1201 + iounmap(hw->hw_addr); 1214 1202 err_ioremap: 1215 1203 free_netdev(netdev); 1216 1204 err_alloc_etherdev: ··· 1235 1223 { 1236 1224 struct net_device *netdev = pci_get_drvdata(pdev); 1237 1225 struct e1000_adapter *adapter = netdev_priv(netdev); 1226 + struct e1000_hw *hw = &adapter->hw; 1238 1227 #ifdef CONFIG_E1000_NAPI 1239 1228 int i; 1240 1229 #endif ··· 1255 1242 1256 1243 unregister_netdev(netdev); 1257 1244 1258 - if (!e1000_check_phy_reset_block(&adapter->hw)) 1259 - e1000_phy_hw_reset(&adapter->hw); 1245 + if (!e1000_check_phy_reset_block(hw)) 1246 + e1000_phy_hw_reset(hw); 1260 1247 1261 1248 kfree(adapter->tx_ring); 1262 1249 kfree(adapter->rx_ring); ··· 1264 1251 kfree(adapter->polling_netdev); 1265 1252 #endif 1266 1253 1267 - iounmap(adapter->hw.hw_addr); 1268 - if (adapter->hw.flash_address) 1269 - iounmap(adapter->hw.flash_address); 1254 + iounmap(hw->hw_addr); 1255 + if (hw->flash_address) 1256 + iounmap(hw->flash_address); 1270 1257 pci_release_regions(pdev); 1271 1258 1272 1259 free_netdev(netdev); ··· 1420 1407 static int e1000_open(struct net_device *netdev) 1421 1408 { 1422 1409 struct e1000_adapter *adapter = netdev_priv(netdev); 1410 + struct e1000_hw *hw = &adapter->hw; 1423 1411 int err; 1424 1412 1425 1413 /* disallow open during test */ ··· 1440 1426 e1000_power_up_phy(adapter); 1441 1427 1442 1428 adapter->mng_vlan_id = E1000_MNG_VLAN_NONE; 1443 - if ((adapter->hw.mng_cookie.status & 1429 + if ((hw->mng_cookie.status & 1444 1430 E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT)) { 1445 1431 e1000_update_mng_vlan(adapter); 1446 1432 } 1447 1433 1448 1434 /* If AMT is enabled, let the firmware know that the network 1449 1435 * interface is now open */ 1450 - if (adapter->hw.mac_type == e1000_82573 && 1451 - e1000_check_mng_mode(&adapter->hw)) 1436 + if (hw->mac_type == e1000_82573 && 1437 + e1000_check_mng_mode(hw)) 1452 1438 e1000_get_hw_control(adapter); 1453 1439 1454 1440 /* before we allocate an interrupt, we must be ready to handle it. ··· 1473 1459 netif_start_queue(netdev); 1474 1460 1475 1461 /* fire a link status change interrupt to start the watchdog */ 1476 - E1000_WRITE_REG(&adapter->hw, ICS, E1000_ICS_LSC); 1462 + ew32(ICS, E1000_ICS_LSC); 1477 1463 1478 1464 return E1000_SUCCESS; 1479 1465 ··· 1504 1490 static int e1000_close(struct net_device *netdev) 1505 1491 { 1506 1492 struct e1000_adapter *adapter = netdev_priv(netdev); 1493 + struct e1000_hw *hw = &adapter->hw; 1507 1494 1508 1495 WARN_ON(test_bit(__E1000_RESETTING, &adapter->flags)); 1509 1496 e1000_down(adapter); ··· 1516 1501 1517 1502 /* kill manageability vlan ID if supported, but not if a vlan with 1518 1503 * the same ID is registered on the host OS (let 8021q kill it) */ 1519 - if ((adapter->hw.mng_cookie.status & 1504 + if ((hw->mng_cookie.status & 1520 1505 E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) && 1521 1506 !(adapter->vlgrp && 1522 1507 vlan_group_get_device(adapter->vlgrp, adapter->mng_vlan_id))) { ··· 1525 1510 1526 1511 /* If AMT is enabled, let the firmware know that the network 1527 1512 * interface is now closed */ 1528 - if (adapter->hw.mac_type == e1000_82573 && 1529 - e1000_check_mng_mode(&adapter->hw)) 1513 + if (hw->mac_type == e1000_82573 && 1514 + e1000_check_mng_mode(hw)) 1530 1515 e1000_release_hw_control(adapter); 1531 1516 1532 1517 return 0; ··· 1541 1526 static bool e1000_check_64k_bound(struct e1000_adapter *adapter, void *start, 1542 1527 unsigned long len) 1543 1528 { 1529 + struct e1000_hw *hw = &adapter->hw; 1544 1530 unsigned long begin = (unsigned long) start; 1545 1531 unsigned long end = begin + len; 1546 1532 1547 1533 /* First rev 82545 and 82546 need to not allow any memory 1548 1534 * write location to cross 64k boundary due to errata 23 */ 1549 - if (adapter->hw.mac_type == e1000_82545 || 1550 - adapter->hw.mac_type == e1000_82546) { 1535 + if (hw->mac_type == e1000_82545 || 1536 + hw->mac_type == e1000_82546) { 1551 1537 return ((begin ^ (end - 1)) >> 16) != 0 ? false : true; 1552 1538 } 1553 1539 ··· 1679 1663 tdba = adapter->tx_ring[0].dma; 1680 1664 tdlen = adapter->tx_ring[0].count * 1681 1665 sizeof(struct e1000_tx_desc); 1682 - E1000_WRITE_REG(hw, TDLEN, tdlen); 1683 - E1000_WRITE_REG(hw, TDBAH, (tdba >> 32)); 1684 - E1000_WRITE_REG(hw, TDBAL, (tdba & 0x00000000ffffffffULL)); 1685 - E1000_WRITE_REG(hw, TDT, 0); 1686 - E1000_WRITE_REG(hw, TDH, 0); 1666 + ew32(TDLEN, tdlen); 1667 + ew32(TDBAH, (tdba >> 32)); 1668 + ew32(TDBAL, (tdba & 0x00000000ffffffffULL)); 1669 + ew32(TDT, 0); 1670 + ew32(TDH, 0); 1687 1671 adapter->tx_ring[0].tdh = ((hw->mac_type >= e1000_82543) ? E1000_TDH : E1000_82542_TDH); 1688 1672 adapter->tx_ring[0].tdt = ((hw->mac_type >= e1000_82543) ? E1000_TDT : E1000_82542_TDT); 1689 1673 break; 1690 1674 } 1691 1675 1692 1676 /* Set the default values for the Tx Inter Packet Gap timer */ 1693 - if (adapter->hw.mac_type <= e1000_82547_rev_2 && 1677 + if (hw->mac_type <= e1000_82547_rev_2 && 1694 1678 (hw->media_type == e1000_media_type_fiber || 1695 1679 hw->media_type == e1000_media_type_internal_serdes)) 1696 1680 tipg = DEFAULT_82543_TIPG_IPGT_FIBER; ··· 1715 1699 } 1716 1700 tipg |= ipgr1 << E1000_TIPG_IPGR1_SHIFT; 1717 1701 tipg |= ipgr2 << E1000_TIPG_IPGR2_SHIFT; 1718 - E1000_WRITE_REG(hw, TIPG, tipg); 1702 + ew32(TIPG, tipg); 1719 1703 1720 1704 /* Set the Tx Interrupt Delay register */ 1721 1705 1722 - E1000_WRITE_REG(hw, TIDV, adapter->tx_int_delay); 1706 + ew32(TIDV, adapter->tx_int_delay); 1723 1707 if (hw->mac_type >= e1000_82540) 1724 - E1000_WRITE_REG(hw, TADV, adapter->tx_abs_int_delay); 1708 + ew32(TADV, adapter->tx_abs_int_delay); 1725 1709 1726 1710 /* Program the Transmit Control Register */ 1727 1711 1728 - tctl = E1000_READ_REG(hw, TCTL); 1712 + tctl = er32(TCTL); 1729 1713 tctl &= ~E1000_TCTL_CT; 1730 1714 tctl |= E1000_TCTL_PSP | E1000_TCTL_RTLC | 1731 1715 (E1000_COLLISION_THRESHOLD << E1000_CT_SHIFT); 1732 1716 1733 1717 if (hw->mac_type == e1000_82571 || hw->mac_type == e1000_82572) { 1734 - tarc = E1000_READ_REG(hw, TARC0); 1718 + tarc = er32(TARC0); 1735 1719 /* set the speed mode bit, we'll clear it if we're not at 1736 1720 * gigabit link later */ 1737 1721 tarc |= (1 << 21); 1738 - E1000_WRITE_REG(hw, TARC0, tarc); 1722 + ew32(TARC0, tarc); 1739 1723 } else if (hw->mac_type == e1000_80003es2lan) { 1740 - tarc = E1000_READ_REG(hw, TARC0); 1724 + tarc = er32(TARC0); 1741 1725 tarc |= 1; 1742 - E1000_WRITE_REG(hw, TARC0, tarc); 1743 - tarc = E1000_READ_REG(hw, TARC1); 1726 + ew32(TARC0, tarc); 1727 + tarc = er32(TARC1); 1744 1728 tarc |= 1; 1745 - E1000_WRITE_REG(hw, TARC1, tarc); 1729 + ew32(TARC1, tarc); 1746 1730 } 1747 1731 1748 1732 e1000_config_collision_dist(hw); ··· 1765 1749 hw->bus_type == e1000_bus_type_pcix) 1766 1750 adapter->pcix_82544 = 1; 1767 1751 1768 - E1000_WRITE_REG(hw, TCTL, tctl); 1752 + ew32(TCTL, tctl); 1769 1753 1770 1754 } 1771 1755 ··· 1780 1764 static int e1000_setup_rx_resources(struct e1000_adapter *adapter, 1781 1765 struct e1000_rx_ring *rxdr) 1782 1766 { 1767 + struct e1000_hw *hw = &adapter->hw; 1783 1768 struct pci_dev *pdev = adapter->pdev; 1784 1769 int size, desc_len; 1785 1770 ··· 1813 1796 return -ENOMEM; 1814 1797 } 1815 1798 1816 - if (adapter->hw.mac_type <= e1000_82547_rev_2) 1799 + if (hw->mac_type <= e1000_82547_rev_2) 1817 1800 desc_len = sizeof(struct e1000_rx_desc); 1818 1801 else 1819 1802 desc_len = sizeof(union e1000_rx_desc_packet_split); ··· 1909 1892 (((S) & (PAGE_SIZE - 1)) ? 1 : 0)) 1910 1893 static void e1000_setup_rctl(struct e1000_adapter *adapter) 1911 1894 { 1895 + struct e1000_hw *hw = &adapter->hw; 1912 1896 u32 rctl, rfctl; 1913 1897 u32 psrctl = 0; 1914 1898 #ifndef CONFIG_E1000_DISABLE_PACKET_SPLIT 1915 1899 u32 pages = 0; 1916 1900 #endif 1917 1901 1918 - rctl = E1000_READ_REG(&adapter->hw, RCTL); 1902 + rctl = er32(RCTL); 1919 1903 1920 1904 rctl &= ~(3 << E1000_RCTL_MO_SHIFT); 1921 1905 1922 1906 rctl |= E1000_RCTL_EN | E1000_RCTL_BAM | 1923 1907 E1000_RCTL_LBM_NO | E1000_RCTL_RDMTS_HALF | 1924 - (adapter->hw.mc_filter_type << E1000_RCTL_MO_SHIFT); 1908 + (hw->mc_filter_type << E1000_RCTL_MO_SHIFT); 1925 1909 1926 - if (adapter->hw.tbi_compatibility_on == 1) 1910 + if (hw->tbi_compatibility_on == 1) 1927 1911 rctl |= E1000_RCTL_SBP; 1928 1912 else 1929 1913 rctl &= ~E1000_RCTL_SBP; ··· 1977 1959 /* allocations using alloc_page take too long for regular MTU 1978 1960 * so only enable packet split for jumbo frames */ 1979 1961 pages = PAGE_USE_COUNT(adapter->netdev->mtu); 1980 - if ((adapter->hw.mac_type >= e1000_82571) && (pages <= 3) && 1962 + if ((hw->mac_type >= e1000_82571) && (pages <= 3) && 1981 1963 PAGE_SIZE <= 16384 && (rctl & E1000_RCTL_LPE)) 1982 1964 adapter->rx_ps_pages = pages; 1983 1965 else ··· 1985 1967 #endif 1986 1968 if (adapter->rx_ps_pages) { 1987 1969 /* Configure extra packet-split registers */ 1988 - rfctl = E1000_READ_REG(&adapter->hw, RFCTL); 1970 + rfctl = er32(RFCTL); 1989 1971 rfctl |= E1000_RFCTL_EXTEN; 1990 1972 /* disable packet split support for IPv6 extension headers, 1991 1973 * because some malformed IPv6 headers can hang the RX */ 1992 1974 rfctl |= (E1000_RFCTL_IPV6_EX_DIS | 1993 1975 E1000_RFCTL_NEW_IPV6_EXT_DIS); 1994 1976 1995 - E1000_WRITE_REG(&adapter->hw, RFCTL, rfctl); 1977 + ew32(RFCTL, rfctl); 1996 1978 1997 1979 rctl |= E1000_RCTL_DTYP_PS; 1998 1980 ··· 2012 1994 break; 2013 1995 } 2014 1996 2015 - E1000_WRITE_REG(&adapter->hw, PSRCTL, psrctl); 1997 + ew32(PSRCTL, psrctl); 2016 1998 } 2017 1999 2018 - E1000_WRITE_REG(&adapter->hw, RCTL, rctl); 2000 + ew32(RCTL, rctl); 2019 2001 } 2020 2002 2021 2003 /** ··· 2045 2027 } 2046 2028 2047 2029 /* disable receives while setting up the descriptors */ 2048 - rctl = E1000_READ_REG(hw, RCTL); 2049 - E1000_WRITE_REG(hw, RCTL, rctl & ~E1000_RCTL_EN); 2030 + rctl = er32(RCTL); 2031 + ew32(RCTL, rctl & ~E1000_RCTL_EN); 2050 2032 2051 2033 /* set the Receive Delay Timer Register */ 2052 - E1000_WRITE_REG(hw, RDTR, adapter->rx_int_delay); 2034 + ew32(RDTR, adapter->rx_int_delay); 2053 2035 2054 2036 if (hw->mac_type >= e1000_82540) { 2055 - E1000_WRITE_REG(hw, RADV, adapter->rx_abs_int_delay); 2037 + ew32(RADV, adapter->rx_abs_int_delay); 2056 2038 if (adapter->itr_setting != 0) 2057 - E1000_WRITE_REG(hw, ITR, 2058 - 1000000000 / (adapter->itr * 256)); 2039 + ew32(ITR, 1000000000 / (adapter->itr * 256)); 2059 2040 } 2060 2041 2061 2042 if (hw->mac_type >= e1000_82571) { 2062 - ctrl_ext = E1000_READ_REG(hw, CTRL_EXT); 2043 + ctrl_ext = er32(CTRL_EXT); 2063 2044 /* Reset delay timers after every interrupt */ 2064 2045 ctrl_ext |= E1000_CTRL_EXT_INT_TIMER_CLR; 2065 2046 #ifdef CONFIG_E1000_NAPI 2066 2047 /* Auto-Mask interrupts upon ICR access */ 2067 2048 ctrl_ext |= E1000_CTRL_EXT_IAME; 2068 - E1000_WRITE_REG(hw, IAM, 0xffffffff); 2049 + ew32(IAM, 0xffffffff); 2069 2050 #endif 2070 - E1000_WRITE_REG(hw, CTRL_EXT, ctrl_ext); 2071 - E1000_WRITE_FLUSH(hw); 2051 + ew32(CTRL_EXT, ctrl_ext); 2052 + E1000_WRITE_FLUSH(); 2072 2053 } 2073 2054 2074 2055 /* Setup the HW Rx Head and Tail Descriptor Pointers and ··· 2076 2059 case 1: 2077 2060 default: 2078 2061 rdba = adapter->rx_ring[0].dma; 2079 - E1000_WRITE_REG(hw, RDLEN, rdlen); 2080 - E1000_WRITE_REG(hw, RDBAH, (rdba >> 32)); 2081 - E1000_WRITE_REG(hw, RDBAL, (rdba & 0x00000000ffffffffULL)); 2082 - E1000_WRITE_REG(hw, RDT, 0); 2083 - E1000_WRITE_REG(hw, RDH, 0); 2062 + ew32(RDLEN, rdlen); 2063 + ew32(RDBAH, (rdba >> 32)); 2064 + ew32(RDBAL, (rdba & 0x00000000ffffffffULL)); 2065 + ew32(RDT, 0); 2066 + ew32(RDH, 0); 2084 2067 adapter->rx_ring[0].rdh = ((hw->mac_type >= e1000_82543) ? E1000_RDH : E1000_82542_RDH); 2085 2068 adapter->rx_ring[0].rdt = ((hw->mac_type >= e1000_82543) ? E1000_RDT : E1000_82542_RDT); 2086 2069 break; ··· 2088 2071 2089 2072 /* Enable 82543 Receive Checksum Offload for TCP and UDP */ 2090 2073 if (hw->mac_type >= e1000_82543) { 2091 - rxcsum = E1000_READ_REG(hw, RXCSUM); 2074 + rxcsum = er32(RXCSUM); 2092 2075 if (adapter->rx_csum) { 2093 2076 rxcsum |= E1000_RXCSUM_TUOFL; 2094 2077 ··· 2102 2085 rxcsum &= ~E1000_RXCSUM_TUOFL; 2103 2086 /* don't need to clear IPPCSE as it defaults to 0 */ 2104 2087 } 2105 - E1000_WRITE_REG(hw, RXCSUM, rxcsum); 2088 + ew32(RXCSUM, rxcsum); 2106 2089 } 2107 2090 2108 2091 /* enable early receives on 82573, only takes effect if using > 2048 2109 2092 * byte total frame size. for example only for jumbo frames */ 2110 2093 #define E1000_ERT_2048 0x100 2111 2094 if (hw->mac_type == e1000_82573) 2112 - E1000_WRITE_REG(hw, ERT, E1000_ERT_2048); 2095 + ew32(ERT, E1000_ERT_2048); 2113 2096 2114 2097 /* Enable Receives */ 2115 - E1000_WRITE_REG(hw, RCTL, rctl); 2098 + ew32(RCTL, rctl); 2116 2099 } 2117 2100 2118 2101 /** ··· 2179 2162 static void e1000_clean_tx_ring(struct e1000_adapter *adapter, 2180 2163 struct e1000_tx_ring *tx_ring) 2181 2164 { 2165 + struct e1000_hw *hw = &adapter->hw; 2182 2166 struct e1000_buffer *buffer_info; 2183 2167 unsigned long size; 2184 2168 unsigned int i; ··· 2202 2184 tx_ring->next_to_clean = 0; 2203 2185 tx_ring->last_tx_tso = 0; 2204 2186 2205 - writel(0, adapter->hw.hw_addr + tx_ring->tdh); 2206 - writel(0, adapter->hw.hw_addr + tx_ring->tdt); 2187 + writel(0, hw->hw_addr + tx_ring->tdh); 2188 + writel(0, hw->hw_addr + tx_ring->tdt); 2207 2189 } 2208 2190 2209 2191 /** ··· 2270 2252 static void e1000_clean_rx_ring(struct e1000_adapter *adapter, 2271 2253 struct e1000_rx_ring *rx_ring) 2272 2254 { 2255 + struct e1000_hw *hw = &adapter->hw; 2273 2256 struct e1000_buffer *buffer_info; 2274 2257 struct e1000_ps_page *ps_page; 2275 2258 struct e1000_ps_page_dma *ps_page_dma; ··· 2317 2298 rx_ring->next_to_clean = 0; 2318 2299 rx_ring->next_to_use = 0; 2319 2300 2320 - writel(0, adapter->hw.hw_addr + rx_ring->rdh); 2321 - writel(0, adapter->hw.hw_addr + rx_ring->rdt); 2301 + writel(0, hw->hw_addr + rx_ring->rdh); 2302 + writel(0, hw->hw_addr + rx_ring->rdt); 2322 2303 } 2323 2304 2324 2305 /** ··· 2339 2320 */ 2340 2321 static void e1000_enter_82542_rst(struct e1000_adapter *adapter) 2341 2322 { 2323 + struct e1000_hw *hw = &adapter->hw; 2342 2324 struct net_device *netdev = adapter->netdev; 2343 2325 u32 rctl; 2344 2326 2345 - e1000_pci_clear_mwi(&adapter->hw); 2327 + e1000_pci_clear_mwi(hw); 2346 2328 2347 - rctl = E1000_READ_REG(&adapter->hw, RCTL); 2329 + rctl = er32(RCTL); 2348 2330 rctl |= E1000_RCTL_RST; 2349 - E1000_WRITE_REG(&adapter->hw, RCTL, rctl); 2350 - E1000_WRITE_FLUSH(&adapter->hw); 2331 + ew32(RCTL, rctl); 2332 + E1000_WRITE_FLUSH(); 2351 2333 mdelay(5); 2352 2334 2353 2335 if (netif_running(netdev)) ··· 2357 2337 2358 2338 static void e1000_leave_82542_rst(struct e1000_adapter *adapter) 2359 2339 { 2340 + struct e1000_hw *hw = &adapter->hw; 2360 2341 struct net_device *netdev = adapter->netdev; 2361 2342 u32 rctl; 2362 2343 2363 - rctl = E1000_READ_REG(&adapter->hw, RCTL); 2344 + rctl = er32(RCTL); 2364 2345 rctl &= ~E1000_RCTL_RST; 2365 - E1000_WRITE_REG(&adapter->hw, RCTL, rctl); 2366 - E1000_WRITE_FLUSH(&adapter->hw); 2346 + ew32(RCTL, rctl); 2347 + E1000_WRITE_FLUSH(); 2367 2348 mdelay(5); 2368 2349 2369 - if (adapter->hw.pci_cmd_word & PCI_COMMAND_INVALIDATE) 2370 - e1000_pci_set_mwi(&adapter->hw); 2350 + if (hw->pci_cmd_word & PCI_COMMAND_INVALIDATE) 2351 + e1000_pci_set_mwi(hw); 2371 2352 2372 2353 if (netif_running(netdev)) { 2373 2354 /* No need to loop, because 82542 supports only 1 queue */ ··· 2389 2368 static int e1000_set_mac(struct net_device *netdev, void *p) 2390 2369 { 2391 2370 struct e1000_adapter *adapter = netdev_priv(netdev); 2371 + struct e1000_hw *hw = &adapter->hw; 2392 2372 struct sockaddr *addr = p; 2393 2373 2394 2374 if (!is_valid_ether_addr(addr->sa_data)) ··· 2397 2375 2398 2376 /* 82542 2.0 needs to be in reset to write receive address registers */ 2399 2377 2400 - if (adapter->hw.mac_type == e1000_82542_rev2_0) 2378 + if (hw->mac_type == e1000_82542_rev2_0) 2401 2379 e1000_enter_82542_rst(adapter); 2402 2380 2403 2381 memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len); 2404 - memcpy(adapter->hw.mac_addr, addr->sa_data, netdev->addr_len); 2382 + memcpy(hw->mac_addr, addr->sa_data, netdev->addr_len); 2405 2383 2406 - e1000_rar_set(&adapter->hw, adapter->hw.mac_addr, 0); 2384 + e1000_rar_set(hw, hw->mac_addr, 0); 2407 2385 2408 2386 /* With 82571 controllers, LAA may be overwritten (with the default) 2409 2387 * due to controller reset from the other port. */ 2410 - if (adapter->hw.mac_type == e1000_82571) { 2388 + if (hw->mac_type == e1000_82571) { 2411 2389 /* activate the work around */ 2412 - adapter->hw.laa_is_present = 1; 2390 + hw->laa_is_present = 1; 2413 2391 2414 2392 /* Hold a copy of the LAA in RAR[14] This is done so that 2415 2393 * between the time RAR[0] gets clobbered and the time it ··· 2417 2395 * of the RARs and no incoming packets directed to this port 2418 2396 * are dropped. Eventaully the LAA will be in RAR[0] and 2419 2397 * RAR[14] */ 2420 - e1000_rar_set(&adapter->hw, adapter->hw.mac_addr, 2398 + e1000_rar_set(hw, hw->mac_addr, 2421 2399 E1000_RAR_ENTRIES - 1); 2422 2400 } 2423 2401 2424 - if (adapter->hw.mac_type == e1000_82542_rev2_0) 2402 + if (hw->mac_type == e1000_82542_rev2_0) 2425 2403 e1000_leave_82542_rst(adapter); 2426 2404 2427 2405 return 0; ··· 2450 2428 E1000_NUM_MTA_REGISTERS_ICH8LAN : 2451 2429 E1000_NUM_MTA_REGISTERS; 2452 2430 2453 - if (adapter->hw.mac_type == e1000_ich8lan) 2431 + if (hw->mac_type == e1000_ich8lan) 2454 2432 rar_entries = E1000_RAR_ENTRIES_ICH8LAN; 2455 2433 2456 2434 /* reserve RAR[14] for LAA over-write work-around */ 2457 - if (adapter->hw.mac_type == e1000_82571) 2435 + if (hw->mac_type == e1000_82571) 2458 2436 rar_entries--; 2459 2437 2460 2438 /* Check for Promiscuous and All Multicast modes */ 2461 2439 2462 - rctl = E1000_READ_REG(hw, RCTL); 2440 + rctl = er32(RCTL); 2463 2441 2464 2442 if (netdev->flags & IFF_PROMISC) { 2465 2443 rctl |= (E1000_RCTL_UPE | E1000_RCTL_MPE); ··· 2482 2460 uc_ptr = netdev->uc_list; 2483 2461 } 2484 2462 2485 - E1000_WRITE_REG(hw, RCTL, rctl); 2463 + ew32(RCTL, rctl); 2486 2464 2487 2465 /* 82542 2.0 needs to be in reset to write receive address registers */ 2488 2466 ··· 2508 2486 mc_ptr = mc_ptr->next; 2509 2487 } else { 2510 2488 E1000_WRITE_REG_ARRAY(hw, RA, i << 1, 0); 2511 - E1000_WRITE_FLUSH(hw); 2489 + E1000_WRITE_FLUSH(); 2512 2490 E1000_WRITE_REG_ARRAY(hw, RA, (i << 1) + 1, 0); 2513 - E1000_WRITE_FLUSH(hw); 2491 + E1000_WRITE_FLUSH(); 2514 2492 } 2515 2493 } 2516 2494 WARN_ON(uc_ptr != NULL); ··· 2519 2497 2520 2498 for (i = 0; i < mta_reg_count; i++) { 2521 2499 E1000_WRITE_REG_ARRAY(hw, MTA, i, 0); 2522 - E1000_WRITE_FLUSH(hw); 2500 + E1000_WRITE_FLUSH(); 2523 2501 } 2524 2502 2525 2503 /* load any remaining addresses into the hash table */ ··· 2539 2517 static void e1000_update_phy_info(unsigned long data) 2540 2518 { 2541 2519 struct e1000_adapter *adapter = (struct e1000_adapter *) data; 2542 - e1000_phy_get_info(&adapter->hw, &adapter->phy_info); 2520 + struct e1000_hw *hw = &adapter->hw; 2521 + e1000_phy_get_info(hw, &adapter->phy_info); 2543 2522 } 2544 2523 2545 2524 /** ··· 2551 2528 static void e1000_82547_tx_fifo_stall(unsigned long data) 2552 2529 { 2553 2530 struct e1000_adapter *adapter = (struct e1000_adapter *) data; 2531 + struct e1000_hw *hw = &adapter->hw; 2554 2532 struct net_device *netdev = adapter->netdev; 2555 2533 u32 tctl; 2556 2534 2557 2535 if (atomic_read(&adapter->tx_fifo_stall)) { 2558 - if ((E1000_READ_REG(&adapter->hw, TDT) == 2559 - E1000_READ_REG(&adapter->hw, TDH)) && 2560 - (E1000_READ_REG(&adapter->hw, TDFT) == 2561 - E1000_READ_REG(&adapter->hw, TDFH)) && 2562 - (E1000_READ_REG(&adapter->hw, TDFTS) == 2563 - E1000_READ_REG(&adapter->hw, TDFHS))) { 2564 - tctl = E1000_READ_REG(&adapter->hw, TCTL); 2565 - E1000_WRITE_REG(&adapter->hw, TCTL, 2566 - tctl & ~E1000_TCTL_EN); 2567 - E1000_WRITE_REG(&adapter->hw, TDFT, 2568 - adapter->tx_head_addr); 2569 - E1000_WRITE_REG(&adapter->hw, TDFH, 2570 - adapter->tx_head_addr); 2571 - E1000_WRITE_REG(&adapter->hw, TDFTS, 2572 - adapter->tx_head_addr); 2573 - E1000_WRITE_REG(&adapter->hw, TDFHS, 2574 - adapter->tx_head_addr); 2575 - E1000_WRITE_REG(&adapter->hw, TCTL, tctl); 2576 - E1000_WRITE_FLUSH(&adapter->hw); 2536 + if ((er32(TDT) == er32(TDH)) && 2537 + (er32(TDFT) == er32(TDFH)) && 2538 + (er32(TDFTS) == er32(TDFHS))) { 2539 + tctl = er32(TCTL); 2540 + ew32(TCTL, tctl & ~E1000_TCTL_EN); 2541 + ew32(TDFT, adapter->tx_head_addr); 2542 + ew32(TDFH, adapter->tx_head_addr); 2543 + ew32(TDFTS, adapter->tx_head_addr); 2544 + ew32(TDFHS, adapter->tx_head_addr); 2545 + ew32(TCTL, tctl); 2546 + E1000_WRITE_FLUSH(); 2577 2547 2578 2548 adapter->tx_fifo_head = 0; 2579 2549 atomic_set(&adapter->tx_fifo_stall, 0); ··· 2584 2568 static void e1000_watchdog(unsigned long data) 2585 2569 { 2586 2570 struct e1000_adapter *adapter = (struct e1000_adapter *) data; 2571 + struct e1000_hw *hw = &adapter->hw; 2587 2572 struct net_device *netdev = adapter->netdev; 2588 2573 struct e1000_tx_ring *txdr = adapter->tx_ring; 2589 2574 u32 link, tctl; 2590 2575 s32 ret_val; 2591 2576 2592 - ret_val = e1000_check_for_link(&adapter->hw); 2577 + ret_val = e1000_check_for_link(hw); 2593 2578 if ((ret_val == E1000_ERR_PHY) && 2594 - (adapter->hw.phy_type == e1000_phy_igp_3) && 2595 - (E1000_READ_REG(&adapter->hw, CTRL) & E1000_PHY_CTRL_GBE_DISABLE)) { 2579 + (hw->phy_type == e1000_phy_igp_3) && 2580 + (er32(CTRL) & E1000_PHY_CTRL_GBE_DISABLE)) { 2596 2581 /* See e1000_kumeran_lock_loss_workaround() */ 2597 2582 DPRINTK(LINK, INFO, 2598 2583 "Gigabit has been disabled, downgrading speed\n"); 2599 2584 } 2600 2585 2601 - if (adapter->hw.mac_type == e1000_82573) { 2602 - e1000_enable_tx_pkt_filtering(&adapter->hw); 2603 - if (adapter->mng_vlan_id != adapter->hw.mng_cookie.vlan_id) 2586 + if (hw->mac_type == e1000_82573) { 2587 + e1000_enable_tx_pkt_filtering(hw); 2588 + if (adapter->mng_vlan_id != hw->mng_cookie.vlan_id) 2604 2589 e1000_update_mng_vlan(adapter); 2605 2590 } 2606 2591 2607 - if ((adapter->hw.media_type == e1000_media_type_internal_serdes) && 2608 - !(E1000_READ_REG(&adapter->hw, TXCW) & E1000_TXCW_ANE)) 2609 - link = !adapter->hw.serdes_link_down; 2592 + if ((hw->media_type == e1000_media_type_internal_serdes) && 2593 + !(er32(TXCW) & E1000_TXCW_ANE)) 2594 + link = !hw->serdes_link_down; 2610 2595 else 2611 - link = E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_LU; 2596 + link = er32(STATUS) & E1000_STATUS_LU; 2612 2597 2613 2598 if (link) { 2614 2599 if (!netif_carrier_ok(netdev)) { 2615 2600 u32 ctrl; 2616 2601 bool txb2b = true; 2617 - e1000_get_speed_and_duplex(&adapter->hw, 2602 + e1000_get_speed_and_duplex(hw, 2618 2603 &adapter->link_speed, 2619 2604 &adapter->link_duplex); 2620 2605 2621 - ctrl = E1000_READ_REG(&adapter->hw, CTRL); 2606 + ctrl = er32(CTRL); 2622 2607 DPRINTK(LINK, INFO, "NIC Link is Up %d Mbps %s, " 2623 2608 "Flow Control: %s\n", 2624 2609 adapter->link_speed, ··· 2647 2630 break; 2648 2631 } 2649 2632 2650 - if ((adapter->hw.mac_type == e1000_82571 || 2651 - adapter->hw.mac_type == e1000_82572) && 2633 + if ((hw->mac_type == e1000_82571 || 2634 + hw->mac_type == e1000_82572) && 2652 2635 !txb2b) { 2653 2636 u32 tarc0; 2654 - tarc0 = E1000_READ_REG(&adapter->hw, TARC0); 2637 + tarc0 = er32(TARC0); 2655 2638 tarc0 &= ~(1 << 21); 2656 - E1000_WRITE_REG(&adapter->hw, TARC0, tarc0); 2639 + ew32(TARC0, tarc0); 2657 2640 } 2658 2641 2659 2642 /* disable TSO for pcie and 10/100 speeds, to avoid 2660 2643 * some hardware issues */ 2661 2644 if (!adapter->tso_force && 2662 - adapter->hw.bus_type == e1000_bus_type_pci_express){ 2645 + hw->bus_type == e1000_bus_type_pci_express){ 2663 2646 switch (adapter->link_speed) { 2664 2647 case SPEED_10: 2665 2648 case SPEED_100: ··· 2680 2663 2681 2664 /* enable transmits in the hardware, need to do this 2682 2665 * after setting TARC0 */ 2683 - tctl = E1000_READ_REG(&adapter->hw, TCTL); 2666 + tctl = er32(TCTL); 2684 2667 tctl |= E1000_TCTL_EN; 2685 - E1000_WRITE_REG(&adapter->hw, TCTL, tctl); 2668 + ew32(TCTL, tctl); 2686 2669 2687 2670 netif_carrier_on(netdev); 2688 2671 netif_wake_queue(netdev); ··· 2690 2673 adapter->smartspeed = 0; 2691 2674 } else { 2692 2675 /* make sure the receive unit is started */ 2693 - if (adapter->hw.rx_needs_kicking) { 2694 - struct e1000_hw *hw = &adapter->hw; 2695 - u32 rctl = E1000_READ_REG(hw, RCTL); 2696 - E1000_WRITE_REG(hw, RCTL, rctl | E1000_RCTL_EN); 2676 + if (hw->rx_needs_kicking) { 2677 + u32 rctl = er32(RCTL); 2678 + ew32(RCTL, rctl | E1000_RCTL_EN); 2697 2679 } 2698 2680 } 2699 2681 } else { ··· 2709 2693 * disable receives in the ISR and 2710 2694 * reset device here in the watchdog 2711 2695 */ 2712 - if (adapter->hw.mac_type == e1000_80003es2lan) 2696 + if (hw->mac_type == e1000_80003es2lan) 2713 2697 /* reset device */ 2714 2698 schedule_work(&adapter->reset_task); 2715 2699 } ··· 2719 2703 2720 2704 e1000_update_stats(adapter); 2721 2705 2722 - adapter->hw.tx_packet_delta = adapter->stats.tpt - adapter->tpt_old; 2706 + hw->tx_packet_delta = adapter->stats.tpt - adapter->tpt_old; 2723 2707 adapter->tpt_old = adapter->stats.tpt; 2724 - adapter->hw.collision_delta = adapter->stats.colc - adapter->colc_old; 2708 + hw->collision_delta = adapter->stats.colc - adapter->colc_old; 2725 2709 adapter->colc_old = adapter->stats.colc; 2726 2710 2727 2711 adapter->gorcl = adapter->stats.gorcl - adapter->gorcl_old; ··· 2729 2713 adapter->gotcl = adapter->stats.gotcl - adapter->gotcl_old; 2730 2714 adapter->gotcl_old = adapter->stats.gotcl; 2731 2715 2732 - e1000_update_adaptive(&adapter->hw); 2716 + e1000_update_adaptive(hw); 2733 2717 2734 2718 if (!netif_carrier_ok(netdev)) { 2735 2719 if (E1000_DESC_UNUSED(txdr) + 1 < txdr->count) { ··· 2743 2727 } 2744 2728 2745 2729 /* Cause software interrupt to ensure rx ring is cleaned */ 2746 - E1000_WRITE_REG(&adapter->hw, ICS, E1000_ICS_RXDMT0); 2730 + ew32(ICS, E1000_ICS_RXDMT0); 2747 2731 2748 2732 /* Force detection of hung controller every watchdog period */ 2749 2733 adapter->detect_tx_hung = true; 2750 2734 2751 2735 /* With 82571 controllers, LAA may be overwritten due to controller 2752 2736 * reset from the other port. Set the appropriate LAA in RAR[0] */ 2753 - if (adapter->hw.mac_type == e1000_82571 && adapter->hw.laa_is_present) 2754 - e1000_rar_set(&adapter->hw, adapter->hw.mac_addr, 0); 2737 + if (hw->mac_type == e1000_82571 && hw->laa_is_present) 2738 + e1000_rar_set(hw, hw->mac_addr, 0); 2755 2739 2756 2740 /* Reset the timer */ 2757 2741 mod_timer(&adapter->watchdog_timer, round_jiffies(jiffies + 2 * HZ)); ··· 2886 2870 min(adapter->itr + (new_itr >> 2), new_itr) : 2887 2871 new_itr; 2888 2872 adapter->itr = new_itr; 2889 - E1000_WRITE_REG(hw, ITR, 1000000000 / (new_itr * 256)); 2873 + ew32(ITR, 1000000000 / (new_itr * 256)); 2890 2874 } 2891 2875 2892 2876 return; ··· 3015 2999 unsigned int max_per_txd, unsigned int nr_frags, 3016 3000 unsigned int mss) 3017 3001 { 3002 + struct e1000_hw *hw = &adapter->hw; 3018 3003 struct e1000_buffer *buffer_info; 3019 3004 unsigned int len = skb->len; 3020 3005 unsigned int offset = 0, size, count = 0, i; ··· 3046 3029 * The fix is to make sure that the first descriptor of a 3047 3030 * packet is smaller than 2048 - 16 - 16 (or 2016) bytes 3048 3031 */ 3049 - if (unlikely((adapter->hw.bus_type == e1000_bus_type_pcix) && 3032 + if (unlikely((hw->bus_type == e1000_bus_type_pcix) && 3050 3033 (size > 2015) && count == 0)) 3051 3034 size = 2015; 3052 3035 ··· 3122 3105 struct e1000_tx_ring *tx_ring, int tx_flags, 3123 3106 int count) 3124 3107 { 3108 + struct e1000_hw *hw = &adapter->hw; 3125 3109 struct e1000_tx_desc *tx_desc = NULL; 3126 3110 struct e1000_buffer *buffer_info; 3127 3111 u32 txd_upper = 0, txd_lower = E1000_TXD_CMD_IFCS; ··· 3168 3150 wmb(); 3169 3151 3170 3152 tx_ring->next_to_use = i; 3171 - writel(i, adapter->hw.hw_addr + tx_ring->tdt); 3153 + writel(i, hw->hw_addr + tx_ring->tdt); 3172 3154 /* we need this if more than one processor can write to our tail 3173 3155 * at a time, it syncronizes IO on IA64/Altix systems */ 3174 3156 mmiowb(); ··· 3219 3201 struct e1000_hw *hw = &adapter->hw; 3220 3202 u16 length, offset; 3221 3203 if (vlan_tx_tag_present(skb)) { 3222 - if (!((vlan_tx_tag_get(skb) == adapter->hw.mng_cookie.vlan_id) && 3223 - ( adapter->hw.mng_cookie.status & 3204 + if (!((vlan_tx_tag_get(skb) == hw->mng_cookie.vlan_id) && 3205 + ( hw->mng_cookie.status & 3224 3206 E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT)) ) 3225 3207 return 0; 3226 3208 } ··· 3281 3263 static int e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev) 3282 3264 { 3283 3265 struct e1000_adapter *adapter = netdev_priv(netdev); 3266 + struct e1000_hw *hw = &adapter->hw; 3284 3267 struct e1000_tx_ring *tx_ring; 3285 3268 unsigned int first, max_per_txd = E1000_MAX_DATA_PER_TXD; 3286 3269 unsigned int max_txd_pwr = E1000_MAX_TXD_PWR; ··· 3307 3288 3308 3289 /* 82571 and newer doesn't need the workaround that limited descriptor 3309 3290 * length to 4kB */ 3310 - if (adapter->hw.mac_type >= e1000_82571) 3291 + if (hw->mac_type >= e1000_82571) 3311 3292 max_per_txd = 8192; 3312 3293 3313 3294 mss = skb_shinfo(skb)->gso_size; ··· 3327 3308 * frags into skb->data */ 3328 3309 hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb); 3329 3310 if (skb->data_len && hdr_len == len) { 3330 - switch (adapter->hw.mac_type) { 3311 + switch (hw->mac_type) { 3331 3312 unsigned int pull_size; 3332 3313 case e1000_82544: 3333 3314 /* Make sure we have room to chop off 4 bytes, ··· 3376 3357 /* work-around for errata 10 and it applies to all controllers 3377 3358 * in PCI-X mode, so add one more descriptor to the count 3378 3359 */ 3379 - if (unlikely((adapter->hw.bus_type == e1000_bus_type_pcix) && 3360 + if (unlikely((hw->bus_type == e1000_bus_type_pcix) && 3380 3361 (len > 2015))) 3381 3362 count++; 3382 3363 ··· 3388 3369 count += nr_frags; 3389 3370 3390 3371 3391 - if (adapter->hw.tx_pkt_filtering && 3392 - (adapter->hw.mac_type == e1000_82573)) 3372 + if (hw->tx_pkt_filtering && 3373 + (hw->mac_type == e1000_82573)) 3393 3374 e1000_transfer_dhcp_info(adapter, skb); 3394 3375 3395 3376 if (!spin_trylock_irqsave(&tx_ring->tx_lock, flags)) ··· 3403 3384 return NETDEV_TX_BUSY; 3404 3385 } 3405 3386 3406 - if (unlikely(adapter->hw.mac_type == e1000_82547)) { 3387 + if (unlikely(hw->mac_type == e1000_82547)) { 3407 3388 if (unlikely(e1000_82547_fifo_workaround(adapter, skb))) { 3408 3389 netif_stop_queue(netdev); 3409 3390 mod_timer(&adapter->tx_fifo_stall_timer, jiffies + 1); ··· 3500 3481 static int e1000_change_mtu(struct net_device *netdev, int new_mtu) 3501 3482 { 3502 3483 struct e1000_adapter *adapter = netdev_priv(netdev); 3484 + struct e1000_hw *hw = &adapter->hw; 3503 3485 int max_frame = new_mtu + ENET_HEADER_SIZE + ETHERNET_FCS_SIZE; 3504 3486 u16 eeprom_data = 0; 3505 3487 ··· 3511 3491 } 3512 3492 3513 3493 /* Adapter-specific max frame size limits. */ 3514 - switch (adapter->hw.mac_type) { 3494 + switch (hw->mac_type) { 3515 3495 case e1000_undefined ... e1000_82542_rev2_1: 3516 3496 case e1000_ich8lan: 3517 3497 if (max_frame > MAXIMUM_ETHERNET_FRAME_SIZE) { ··· 3523 3503 /* Jumbo Frames not supported if: 3524 3504 * - this is not an 82573L device 3525 3505 * - ASPM is enabled in any way (0x1A bits 3:2) */ 3526 - e1000_read_eeprom(&adapter->hw, EEPROM_INIT_3GIO_3, 1, 3506 + e1000_read_eeprom(hw, EEPROM_INIT_3GIO_3, 1, 3527 3507 &eeprom_data); 3528 - if ((adapter->hw.device_id != E1000_DEV_ID_82573L) || 3508 + if ((hw->device_id != E1000_DEV_ID_82573L) || 3529 3509 (eeprom_data & EEPROM_WORD1A_ASPM_MASK)) { 3530 3510 if (max_frame > MAXIMUM_ETHERNET_FRAME_SIZE) { 3531 3511 DPRINTK(PROBE, ERR, ··· 3572 3552 adapter->rx_buffer_len = E1000_RXBUFFER_16384; 3573 3553 3574 3554 /* adjust allocation if LPE protects us, and we aren't using SBP */ 3575 - if (!adapter->hw.tbi_compatibility_on && 3555 + if (!hw->tbi_compatibility_on && 3576 3556 ((max_frame == MAXIMUM_ETHERNET_FRAME_SIZE) || 3577 3557 (max_frame == MAXIMUM_ETHERNET_VLAN_SIZE))) 3578 3558 adapter->rx_buffer_len = MAXIMUM_ETHERNET_VLAN_SIZE; 3579 3559 3580 3560 netdev->mtu = new_mtu; 3581 - adapter->hw.max_frame_size = max_frame; 3561 + hw->max_frame_size = max_frame; 3582 3562 3583 3563 if (netif_running(netdev)) 3584 3564 e1000_reinit_locked(adapter); ··· 3616 3596 * be written while holding adapter->stats_lock 3617 3597 */ 3618 3598 3619 - adapter->stats.crcerrs += E1000_READ_REG(hw, CRCERRS); 3620 - adapter->stats.gprc += E1000_READ_REG(hw, GPRC); 3621 - adapter->stats.gorcl += E1000_READ_REG(hw, GORCL); 3622 - adapter->stats.gorch += E1000_READ_REG(hw, GORCH); 3623 - adapter->stats.bprc += E1000_READ_REG(hw, BPRC); 3624 - adapter->stats.mprc += E1000_READ_REG(hw, MPRC); 3625 - adapter->stats.roc += E1000_READ_REG(hw, ROC); 3599 + adapter->stats.crcerrs += er32(CRCERRS); 3600 + adapter->stats.gprc += er32(GPRC); 3601 + adapter->stats.gorcl += er32(GORCL); 3602 + adapter->stats.gorch += er32(GORCH); 3603 + adapter->stats.bprc += er32(BPRC); 3604 + adapter->stats.mprc += er32(MPRC); 3605 + adapter->stats.roc += er32(ROC); 3626 3606 3627 - if (adapter->hw.mac_type != e1000_ich8lan) { 3628 - adapter->stats.prc64 += E1000_READ_REG(hw, PRC64); 3629 - adapter->stats.prc127 += E1000_READ_REG(hw, PRC127); 3630 - adapter->stats.prc255 += E1000_READ_REG(hw, PRC255); 3631 - adapter->stats.prc511 += E1000_READ_REG(hw, PRC511); 3632 - adapter->stats.prc1023 += E1000_READ_REG(hw, PRC1023); 3633 - adapter->stats.prc1522 += E1000_READ_REG(hw, PRC1522); 3607 + if (hw->mac_type != e1000_ich8lan) { 3608 + adapter->stats.prc64 += er32(PRC64); 3609 + adapter->stats.prc127 += er32(PRC127); 3610 + adapter->stats.prc255 += er32(PRC255); 3611 + adapter->stats.prc511 += er32(PRC511); 3612 + adapter->stats.prc1023 += er32(PRC1023); 3613 + adapter->stats.prc1522 += er32(PRC1522); 3634 3614 } 3635 3615 3636 - adapter->stats.symerrs += E1000_READ_REG(hw, SYMERRS); 3637 - adapter->stats.mpc += E1000_READ_REG(hw, MPC); 3638 - adapter->stats.scc += E1000_READ_REG(hw, SCC); 3639 - adapter->stats.ecol += E1000_READ_REG(hw, ECOL); 3640 - adapter->stats.mcc += E1000_READ_REG(hw, MCC); 3641 - adapter->stats.latecol += E1000_READ_REG(hw, LATECOL); 3642 - adapter->stats.dc += E1000_READ_REG(hw, DC); 3643 - adapter->stats.sec += E1000_READ_REG(hw, SEC); 3644 - adapter->stats.rlec += E1000_READ_REG(hw, RLEC); 3645 - adapter->stats.xonrxc += E1000_READ_REG(hw, XONRXC); 3646 - adapter->stats.xontxc += E1000_READ_REG(hw, XONTXC); 3647 - adapter->stats.xoffrxc += E1000_READ_REG(hw, XOFFRXC); 3648 - adapter->stats.xofftxc += E1000_READ_REG(hw, XOFFTXC); 3649 - adapter->stats.fcruc += E1000_READ_REG(hw, FCRUC); 3650 - adapter->stats.gptc += E1000_READ_REG(hw, GPTC); 3651 - adapter->stats.gotcl += E1000_READ_REG(hw, GOTCL); 3652 - adapter->stats.gotch += E1000_READ_REG(hw, GOTCH); 3653 - adapter->stats.rnbc += E1000_READ_REG(hw, RNBC); 3654 - adapter->stats.ruc += E1000_READ_REG(hw, RUC); 3655 - adapter->stats.rfc += E1000_READ_REG(hw, RFC); 3656 - adapter->stats.rjc += E1000_READ_REG(hw, RJC); 3657 - adapter->stats.torl += E1000_READ_REG(hw, TORL); 3658 - adapter->stats.torh += E1000_READ_REG(hw, TORH); 3659 - adapter->stats.totl += E1000_READ_REG(hw, TOTL); 3660 - adapter->stats.toth += E1000_READ_REG(hw, TOTH); 3661 - adapter->stats.tpr += E1000_READ_REG(hw, TPR); 3616 + adapter->stats.symerrs += er32(SYMERRS); 3617 + adapter->stats.mpc += er32(MPC); 3618 + adapter->stats.scc += er32(SCC); 3619 + adapter->stats.ecol += er32(ECOL); 3620 + adapter->stats.mcc += er32(MCC); 3621 + adapter->stats.latecol += er32(LATECOL); 3622 + adapter->stats.dc += er32(DC); 3623 + adapter->stats.sec += er32(SEC); 3624 + adapter->stats.rlec += er32(RLEC); 3625 + adapter->stats.xonrxc += er32(XONRXC); 3626 + adapter->stats.xontxc += er32(XONTXC); 3627 + adapter->stats.xoffrxc += er32(XOFFRXC); 3628 + adapter->stats.xofftxc += er32(XOFFTXC); 3629 + adapter->stats.fcruc += er32(FCRUC); 3630 + adapter->stats.gptc += er32(GPTC); 3631 + adapter->stats.gotcl += er32(GOTCL); 3632 + adapter->stats.gotch += er32(GOTCH); 3633 + adapter->stats.rnbc += er32(RNBC); 3634 + adapter->stats.ruc += er32(RUC); 3635 + adapter->stats.rfc += er32(RFC); 3636 + adapter->stats.rjc += er32(RJC); 3637 + adapter->stats.torl += er32(TORL); 3638 + adapter->stats.torh += er32(TORH); 3639 + adapter->stats.totl += er32(TOTL); 3640 + adapter->stats.toth += er32(TOTH); 3641 + adapter->stats.tpr += er32(TPR); 3662 3642 3663 - if (adapter->hw.mac_type != e1000_ich8lan) { 3664 - adapter->stats.ptc64 += E1000_READ_REG(hw, PTC64); 3665 - adapter->stats.ptc127 += E1000_READ_REG(hw, PTC127); 3666 - adapter->stats.ptc255 += E1000_READ_REG(hw, PTC255); 3667 - adapter->stats.ptc511 += E1000_READ_REG(hw, PTC511); 3668 - adapter->stats.ptc1023 += E1000_READ_REG(hw, PTC1023); 3669 - adapter->stats.ptc1522 += E1000_READ_REG(hw, PTC1522); 3643 + if (hw->mac_type != e1000_ich8lan) { 3644 + adapter->stats.ptc64 += er32(PTC64); 3645 + adapter->stats.ptc127 += er32(PTC127); 3646 + adapter->stats.ptc255 += er32(PTC255); 3647 + adapter->stats.ptc511 += er32(PTC511); 3648 + adapter->stats.ptc1023 += er32(PTC1023); 3649 + adapter->stats.ptc1522 += er32(PTC1522); 3670 3650 } 3671 3651 3672 - adapter->stats.mptc += E1000_READ_REG(hw, MPTC); 3673 - adapter->stats.bptc += E1000_READ_REG(hw, BPTC); 3652 + adapter->stats.mptc += er32(MPTC); 3653 + adapter->stats.bptc += er32(BPTC); 3674 3654 3675 3655 /* used for adaptive IFS */ 3676 3656 3677 - hw->tx_packet_delta = E1000_READ_REG(hw, TPT); 3657 + hw->tx_packet_delta = er32(TPT); 3678 3658 adapter->stats.tpt += hw->tx_packet_delta; 3679 - hw->collision_delta = E1000_READ_REG(hw, COLC); 3659 + hw->collision_delta = er32(COLC); 3680 3660 adapter->stats.colc += hw->collision_delta; 3681 3661 3682 3662 if (hw->mac_type >= e1000_82543) { 3683 - adapter->stats.algnerrc += E1000_READ_REG(hw, ALGNERRC); 3684 - adapter->stats.rxerrc += E1000_READ_REG(hw, RXERRC); 3685 - adapter->stats.tncrs += E1000_READ_REG(hw, TNCRS); 3686 - adapter->stats.cexterr += E1000_READ_REG(hw, CEXTERR); 3687 - adapter->stats.tsctc += E1000_READ_REG(hw, TSCTC); 3688 - adapter->stats.tsctfc += E1000_READ_REG(hw, TSCTFC); 3663 + adapter->stats.algnerrc += er32(ALGNERRC); 3664 + adapter->stats.rxerrc += er32(RXERRC); 3665 + adapter->stats.tncrs += er32(TNCRS); 3666 + adapter->stats.cexterr += er32(CEXTERR); 3667 + adapter->stats.tsctc += er32(TSCTC); 3668 + adapter->stats.tsctfc += er32(TSCTFC); 3689 3669 } 3690 3670 if (hw->mac_type > e1000_82547_rev_2) { 3691 - adapter->stats.iac += E1000_READ_REG(hw, IAC); 3692 - adapter->stats.icrxoc += E1000_READ_REG(hw, ICRXOC); 3671 + adapter->stats.iac += er32(IAC); 3672 + adapter->stats.icrxoc += er32(ICRXOC); 3693 3673 3694 - if (adapter->hw.mac_type != e1000_ich8lan) { 3695 - adapter->stats.icrxptc += E1000_READ_REG(hw, ICRXPTC); 3696 - adapter->stats.icrxatc += E1000_READ_REG(hw, ICRXATC); 3697 - adapter->stats.ictxptc += E1000_READ_REG(hw, ICTXPTC); 3698 - adapter->stats.ictxatc += E1000_READ_REG(hw, ICTXATC); 3699 - adapter->stats.ictxqec += E1000_READ_REG(hw, ICTXQEC); 3700 - adapter->stats.ictxqmtc += E1000_READ_REG(hw, ICTXQMTC); 3701 - adapter->stats.icrxdmtc += E1000_READ_REG(hw, ICRXDMTC); 3674 + if (hw->mac_type != e1000_ich8lan) { 3675 + adapter->stats.icrxptc += er32(ICRXPTC); 3676 + adapter->stats.icrxatc += er32(ICRXATC); 3677 + adapter->stats.ictxptc += er32(ICTXPTC); 3678 + adapter->stats.ictxatc += er32(ICTXATC); 3679 + adapter->stats.ictxqec += er32(ICTXQEC); 3680 + adapter->stats.ictxqmtc += er32(ICTXQMTC); 3681 + adapter->stats.icrxdmtc += er32(ICRXDMTC); 3702 3682 } 3703 3683 } 3704 3684 ··· 3726 3706 adapter->net_stats.tx_aborted_errors = adapter->stats.ecol; 3727 3707 adapter->net_stats.tx_window_errors = adapter->stats.latecol; 3728 3708 adapter->net_stats.tx_carrier_errors = adapter->stats.tncrs; 3729 - if (adapter->hw.bad_tx_carr_stats_fd && 3709 + if (hw->bad_tx_carr_stats_fd && 3730 3710 adapter->link_duplex == FULL_DUPLEX) { 3731 3711 adapter->net_stats.tx_carrier_errors = 0; 3732 3712 adapter->stats.tncrs = 0; ··· 3749 3729 } 3750 3730 3751 3731 /* Management Stats */ 3752 - if (adapter->hw.has_smbus) { 3753 - adapter->stats.mgptc += E1000_READ_REG(hw, MGTPTC); 3754 - adapter->stats.mgprc += E1000_READ_REG(hw, MGTPRC); 3755 - adapter->stats.mgpdc += E1000_READ_REG(hw, MGTPDC); 3732 + if (hw->has_smbus) { 3733 + adapter->stats.mgptc += er32(MGTPTC); 3734 + adapter->stats.mgprc += er32(MGTPRC); 3735 + adapter->stats.mgpdc += er32(MGTPDC); 3756 3736 } 3757 3737 3758 3738 spin_unlock_irqrestore(&adapter->stats_lock, flags); ··· 3772 3752 #ifndef CONFIG_E1000_NAPI 3773 3753 int i; 3774 3754 #endif 3775 - u32 icr = E1000_READ_REG(hw, ICR); 3755 + u32 icr = er32(ICR); 3776 3756 3777 3757 /* in NAPI mode read ICR disables interrupts using IAM */ 3778 3758 ··· 3782 3762 * link down event; disable receives here in the ISR and reset 3783 3763 * adapter in watchdog */ 3784 3764 if (netif_carrier_ok(netdev) && 3785 - (adapter->hw.mac_type == e1000_80003es2lan)) { 3765 + (hw->mac_type == e1000_80003es2lan)) { 3786 3766 /* disable receives */ 3787 - u32 rctl = E1000_READ_REG(hw, RCTL); 3788 - E1000_WRITE_REG(hw, RCTL, rctl & ~E1000_RCTL_EN); 3767 + u32 rctl = er32(RCTL); 3768 + ew32(RCTL, rctl & ~E1000_RCTL_EN); 3789 3769 } 3790 3770 /* guard against interrupt when we're going down */ 3791 3771 if (!test_bit(__E1000_DOWN, &adapter->flags)) ··· 3830 3810 struct net_device *netdev = data; 3831 3811 struct e1000_adapter *adapter = netdev_priv(netdev); 3832 3812 struct e1000_hw *hw = &adapter->hw; 3833 - u32 rctl, icr = E1000_READ_REG(hw, ICR); 3813 + u32 rctl, icr = er32(ICR); 3834 3814 #ifndef CONFIG_E1000_NAPI 3835 3815 int i; 3836 3816 #endif ··· 3856 3836 * reset adapter in watchdog 3857 3837 */ 3858 3838 if (netif_carrier_ok(netdev) && 3859 - (adapter->hw.mac_type == e1000_80003es2lan)) { 3839 + (hw->mac_type == e1000_80003es2lan)) { 3860 3840 /* disable receives */ 3861 - rctl = E1000_READ_REG(hw, RCTL); 3862 - E1000_WRITE_REG(hw, RCTL, rctl & ~E1000_RCTL_EN); 3841 + rctl = er32(RCTL); 3842 + ew32(RCTL, rctl & ~E1000_RCTL_EN); 3863 3843 } 3864 3844 /* guard against interrupt when we're going down */ 3865 3845 if (!test_bit(__E1000_DOWN, &adapter->flags)) ··· 3869 3849 #ifdef CONFIG_E1000_NAPI 3870 3850 if (unlikely(hw->mac_type < e1000_82571)) { 3871 3851 /* disable interrupts, without the synchronize_irq bit */ 3872 - E1000_WRITE_REG(hw, IMC, ~0); 3873 - E1000_WRITE_FLUSH(hw); 3852 + ew32(IMC, ~0); 3853 + E1000_WRITE_FLUSH(); 3874 3854 } 3875 3855 if (likely(netif_rx_schedule_prep(netdev, &adapter->napi))) { 3876 3856 adapter->total_tx_bytes = 0; ··· 3894 3874 * de-assertion state. 3895 3875 */ 3896 3876 if (hw->mac_type == e1000_82547 || hw->mac_type == e1000_82547_rev_2) 3897 - E1000_WRITE_REG(hw, IMC, ~0); 3877 + ew32(IMC, ~0); 3898 3878 3899 3879 adapter->total_tx_bytes = 0; 3900 3880 adapter->total_rx_bytes = 0; ··· 3967 3947 static bool e1000_clean_tx_irq(struct e1000_adapter *adapter, 3968 3948 struct e1000_tx_ring *tx_ring) 3969 3949 { 3950 + struct e1000_hw *hw = &adapter->hw; 3970 3951 struct net_device *netdev = adapter->netdev; 3971 3952 struct e1000_tx_desc *tx_desc, *eop_desc; 3972 3953 struct e1000_buffer *buffer_info; ··· 4035 4014 if (tx_ring->buffer_info[eop].dma && 4036 4015 time_after(jiffies, tx_ring->buffer_info[eop].time_stamp + 4037 4016 (adapter->tx_timeout_factor * HZ)) 4038 - && !(E1000_READ_REG(&adapter->hw, STATUS) & 4039 - E1000_STATUS_TXOFF)) { 4017 + && !(er32(STATUS) & E1000_STATUS_TXOFF)) { 4040 4018 4041 4019 /* detected Tx unit hang */ 4042 4020 DPRINTK(DRV, ERR, "Detected Tx Unit Hang\n" ··· 4051 4031 " next_to_watch.status <%x>\n", 4052 4032 (unsigned long)((tx_ring - adapter->tx_ring) / 4053 4033 sizeof(struct e1000_tx_ring)), 4054 - readl(adapter->hw.hw_addr + tx_ring->tdh), 4055 - readl(adapter->hw.hw_addr + tx_ring->tdt), 4034 + readl(hw->hw_addr + tx_ring->tdh), 4035 + readl(hw->hw_addr + tx_ring->tdt), 4056 4036 tx_ring->next_to_use, 4057 4037 tx_ring->next_to_clean, 4058 4038 tx_ring->buffer_info[eop].time_stamp, ··· 4080 4060 static void e1000_rx_checksum(struct e1000_adapter *adapter, u32 status_err, 4081 4061 u32 csum, struct sk_buff *skb) 4082 4062 { 4063 + struct e1000_hw *hw = &adapter->hw; 4083 4064 u16 status = (u16)status_err; 4084 4065 u8 errors = (u8)(status_err >> 24); 4085 4066 skb->ip_summed = CHECKSUM_NONE; 4086 4067 4087 4068 /* 82543 or newer only */ 4088 - if (unlikely(adapter->hw.mac_type < e1000_82543)) return; 4069 + if (unlikely(hw->mac_type < e1000_82543)) return; 4089 4070 /* Ignore Checksum bit is set */ 4090 4071 if (unlikely(status & E1000_RXD_STAT_IXSM)) return; 4091 4072 /* TCP/UDP checksum error bit is set */ ··· 4096 4075 return; 4097 4076 } 4098 4077 /* TCP/UDP Checksum has not been calculated */ 4099 - if (adapter->hw.mac_type <= e1000_82547_rev_2) { 4078 + if (hw->mac_type <= e1000_82547_rev_2) { 4100 4079 if (!(status & E1000_RXD_STAT_TCPCS)) 4101 4080 return; 4102 4081 } else { ··· 4107 4086 if (likely(status & E1000_RXD_STAT_TCPCS)) { 4108 4087 /* TCP checksum is good */ 4109 4088 skb->ip_summed = CHECKSUM_UNNECESSARY; 4110 - } else if (adapter->hw.mac_type > e1000_82547_rev_2) { 4089 + } else if (hw->mac_type > e1000_82547_rev_2) { 4111 4090 /* IP fragment with UDP payload */ 4112 4091 /* Hardware complements the payload checksum, so we undo it 4113 4092 * and then put the value in host order for further stack use. ··· 4132 4111 struct e1000_rx_ring *rx_ring) 4133 4112 #endif 4134 4113 { 4114 + struct e1000_hw *hw = &adapter->hw; 4135 4115 struct net_device *netdev = adapter->netdev; 4136 4116 struct pci_dev *pdev = adapter->pdev; 4137 4117 struct e1000_rx_desc *rx_desc, *next_rxd; ··· 4190 4168 4191 4169 if (unlikely(rx_desc->errors & E1000_RXD_ERR_FRAME_ERR_MASK)) { 4192 4170 last_byte = *(skb->data + length - 1); 4193 - if (TBI_ACCEPT(&adapter->hw, status, 4194 - rx_desc->errors, length, last_byte)) { 4171 + if (TBI_ACCEPT(hw, status, rx_desc->errors, length, 4172 + last_byte)) { 4195 4173 spin_lock_irqsave(&adapter->stats_lock, flags); 4196 - e1000_tbi_adjust_stats(&adapter->hw, 4197 - &adapter->stats, 4174 + e1000_tbi_adjust_stats(hw, &adapter->stats, 4198 4175 length, skb->data); 4199 4176 spin_unlock_irqrestore(&adapter->stats_lock, 4200 4177 flags); ··· 4483 4462 struct e1000_rx_ring *rx_ring, 4484 4463 int cleaned_count) 4485 4464 { 4465 + struct e1000_hw *hw = &adapter->hw; 4486 4466 struct net_device *netdev = adapter->netdev; 4487 4467 struct pci_dev *pdev = adapter->pdev; 4488 4468 struct e1000_rx_desc *rx_desc; ··· 4581 4559 * applicable for weak-ordered memory model archs, 4582 4560 * such as IA-64). */ 4583 4561 wmb(); 4584 - writel(i, adapter->hw.hw_addr + rx_ring->rdt); 4562 + writel(i, hw->hw_addr + rx_ring->rdt); 4585 4563 } 4586 4564 } 4587 4565 ··· 4594 4572 struct e1000_rx_ring *rx_ring, 4595 4573 int cleaned_count) 4596 4574 { 4575 + struct e1000_hw *hw = &adapter->hw; 4597 4576 struct net_device *netdev = adapter->netdev; 4598 4577 struct pci_dev *pdev = adapter->pdev; 4599 4578 union e1000_rx_desc_packet_split *rx_desc; ··· 4679 4656 * descriptors are 32 bytes...so we increment tail 4680 4657 * twice as much. 4681 4658 */ 4682 - writel(i<<1, adapter->hw.hw_addr + rx_ring->rdt); 4659 + writel(i<<1, hw->hw_addr + rx_ring->rdt); 4683 4660 } 4684 4661 } 4685 4662 ··· 4690 4667 4691 4668 static void e1000_smartspeed(struct e1000_adapter *adapter) 4692 4669 { 4670 + struct e1000_hw *hw = &adapter->hw; 4693 4671 u16 phy_status; 4694 4672 u16 phy_ctrl; 4695 4673 4696 - if ((adapter->hw.phy_type != e1000_phy_igp) || !adapter->hw.autoneg || 4697 - !(adapter->hw.autoneg_advertised & ADVERTISE_1000_FULL)) 4674 + if ((hw->phy_type != e1000_phy_igp) || !hw->autoneg || 4675 + !(hw->autoneg_advertised & ADVERTISE_1000_FULL)) 4698 4676 return; 4699 4677 4700 4678 if (adapter->smartspeed == 0) { 4701 4679 /* If Master/Slave config fault is asserted twice, 4702 4680 * we assume back-to-back */ 4703 - e1000_read_phy_reg(&adapter->hw, PHY_1000T_STATUS, &phy_status); 4681 + e1000_read_phy_reg(hw, PHY_1000T_STATUS, &phy_status); 4704 4682 if (!(phy_status & SR_1000T_MS_CONFIG_FAULT)) return; 4705 - e1000_read_phy_reg(&adapter->hw, PHY_1000T_STATUS, &phy_status); 4683 + e1000_read_phy_reg(hw, PHY_1000T_STATUS, &phy_status); 4706 4684 if (!(phy_status & SR_1000T_MS_CONFIG_FAULT)) return; 4707 - e1000_read_phy_reg(&adapter->hw, PHY_1000T_CTRL, &phy_ctrl); 4685 + e1000_read_phy_reg(hw, PHY_1000T_CTRL, &phy_ctrl); 4708 4686 if (phy_ctrl & CR_1000T_MS_ENABLE) { 4709 4687 phy_ctrl &= ~CR_1000T_MS_ENABLE; 4710 - e1000_write_phy_reg(&adapter->hw, PHY_1000T_CTRL, 4688 + e1000_write_phy_reg(hw, PHY_1000T_CTRL, 4711 4689 phy_ctrl); 4712 4690 adapter->smartspeed++; 4713 - if (!e1000_phy_setup_autoneg(&adapter->hw) && 4714 - !e1000_read_phy_reg(&adapter->hw, PHY_CTRL, 4691 + if (!e1000_phy_setup_autoneg(hw) && 4692 + !e1000_read_phy_reg(hw, PHY_CTRL, 4715 4693 &phy_ctrl)) { 4716 4694 phy_ctrl |= (MII_CR_AUTO_NEG_EN | 4717 4695 MII_CR_RESTART_AUTO_NEG); 4718 - e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 4696 + e1000_write_phy_reg(hw, PHY_CTRL, 4719 4697 phy_ctrl); 4720 4698 } 4721 4699 } 4722 4700 return; 4723 4701 } else if (adapter->smartspeed == E1000_SMARTSPEED_DOWNSHIFT) { 4724 4702 /* If still no link, perhaps using 2/3 pair cable */ 4725 - e1000_read_phy_reg(&adapter->hw, PHY_1000T_CTRL, &phy_ctrl); 4703 + e1000_read_phy_reg(hw, PHY_1000T_CTRL, &phy_ctrl); 4726 4704 phy_ctrl |= CR_1000T_MS_ENABLE; 4727 - e1000_write_phy_reg(&adapter->hw, PHY_1000T_CTRL, phy_ctrl); 4728 - if (!e1000_phy_setup_autoneg(&adapter->hw) && 4729 - !e1000_read_phy_reg(&adapter->hw, PHY_CTRL, &phy_ctrl)) { 4705 + e1000_write_phy_reg(hw, PHY_1000T_CTRL, phy_ctrl); 4706 + if (!e1000_phy_setup_autoneg(hw) && 4707 + !e1000_read_phy_reg(hw, PHY_CTRL, &phy_ctrl)) { 4730 4708 phy_ctrl |= (MII_CR_AUTO_NEG_EN | 4731 4709 MII_CR_RESTART_AUTO_NEG); 4732 - e1000_write_phy_reg(&adapter->hw, PHY_CTRL, phy_ctrl); 4710 + e1000_write_phy_reg(hw, PHY_CTRL, phy_ctrl); 4733 4711 } 4734 4712 } 4735 4713 /* Restart process after E1000_SMARTSPEED_MAX iterations */ ··· 4768 4744 int cmd) 4769 4745 { 4770 4746 struct e1000_adapter *adapter = netdev_priv(netdev); 4747 + struct e1000_hw *hw = &adapter->hw; 4771 4748 struct mii_ioctl_data *data = if_mii(ifr); 4772 4749 int retval; 4773 4750 u16 mii_reg; 4774 4751 u16 spddplx; 4775 4752 unsigned long flags; 4776 4753 4777 - if (adapter->hw.media_type != e1000_media_type_copper) 4754 + if (hw->media_type != e1000_media_type_copper) 4778 4755 return -EOPNOTSUPP; 4779 4756 4780 4757 switch (cmd) { 4781 4758 case SIOCGMIIPHY: 4782 - data->phy_id = adapter->hw.phy_addr; 4759 + data->phy_id = hw->phy_addr; 4783 4760 break; 4784 4761 case SIOCGMIIREG: 4785 4762 if (!capable(CAP_NET_ADMIN)) 4786 4763 return -EPERM; 4787 4764 spin_lock_irqsave(&adapter->stats_lock, flags); 4788 - if (e1000_read_phy_reg(&adapter->hw, data->reg_num & 0x1F, 4765 + if (e1000_read_phy_reg(hw, data->reg_num & 0x1F, 4789 4766 &data->val_out)) { 4790 4767 spin_unlock_irqrestore(&adapter->stats_lock, flags); 4791 4768 return -EIO; ··· 4800 4775 return -EFAULT; 4801 4776 mii_reg = data->val_in; 4802 4777 spin_lock_irqsave(&adapter->stats_lock, flags); 4803 - if (e1000_write_phy_reg(&adapter->hw, data->reg_num, 4778 + if (e1000_write_phy_reg(hw, data->reg_num, 4804 4779 mii_reg)) { 4805 4780 spin_unlock_irqrestore(&adapter->stats_lock, flags); 4806 4781 return -EIO; 4807 4782 } 4808 4783 spin_unlock_irqrestore(&adapter->stats_lock, flags); 4809 - if (adapter->hw.media_type == e1000_media_type_copper) { 4784 + if (hw->media_type == e1000_media_type_copper) { 4810 4785 switch (data->reg_num) { 4811 4786 case PHY_CTRL: 4812 4787 if (mii_reg & MII_CR_POWER_DOWN) 4813 4788 break; 4814 4789 if (mii_reg & MII_CR_AUTO_NEG_EN) { 4815 - adapter->hw.autoneg = 1; 4816 - adapter->hw.autoneg_advertised = 0x2F; 4790 + hw->autoneg = 1; 4791 + hw->autoneg_advertised = 0x2F; 4817 4792 } else { 4818 4793 if (mii_reg & 0x40) 4819 4794 spddplx = SPEED_1000; ··· 4836 4811 break; 4837 4812 case M88E1000_PHY_SPEC_CTRL: 4838 4813 case M88E1000_EXT_PHY_SPEC_CTRL: 4839 - if (e1000_phy_reset(&adapter->hw)) 4814 + if (e1000_phy_reset(hw)) 4840 4815 return -EIO; 4841 4816 break; 4842 4817 } ··· 4910 4885 struct vlan_group *grp) 4911 4886 { 4912 4887 struct e1000_adapter *adapter = netdev_priv(netdev); 4888 + struct e1000_hw *hw = &adapter->hw; 4913 4889 u32 ctrl, rctl; 4914 4890 4915 4891 if (!test_bit(__E1000_DOWN, &adapter->flags)) ··· 4919 4893 4920 4894 if (grp) { 4921 4895 /* enable VLAN tag insert/strip */ 4922 - ctrl = E1000_READ_REG(&adapter->hw, CTRL); 4896 + ctrl = er32(CTRL); 4923 4897 ctrl |= E1000_CTRL_VME; 4924 - E1000_WRITE_REG(&adapter->hw, CTRL, ctrl); 4898 + ew32(CTRL, ctrl); 4925 4899 4926 4900 if (adapter->hw.mac_type != e1000_ich8lan) { 4927 4901 /* enable VLAN receive filtering */ 4928 - rctl = E1000_READ_REG(&adapter->hw, RCTL); 4902 + rctl = er32(RCTL); 4929 4903 rctl &= ~E1000_RCTL_CFIEN; 4930 - E1000_WRITE_REG(&adapter->hw, RCTL, rctl); 4904 + ew32(RCTL, rctl); 4931 4905 e1000_update_mng_vlan(adapter); 4932 4906 } 4933 4907 } else { 4934 4908 /* disable VLAN tag insert/strip */ 4935 - ctrl = E1000_READ_REG(&adapter->hw, CTRL); 4909 + ctrl = er32(CTRL); 4936 4910 ctrl &= ~E1000_CTRL_VME; 4937 - E1000_WRITE_REG(&adapter->hw, CTRL, ctrl); 4911 + ew32(CTRL, ctrl); 4938 4912 4939 4913 if (adapter->hw.mac_type != e1000_ich8lan) { 4940 4914 if (adapter->mng_vlan_id != ··· 4953 4927 static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) 4954 4928 { 4955 4929 struct e1000_adapter *adapter = netdev_priv(netdev); 4930 + struct e1000_hw *hw = &adapter->hw; 4956 4931 u32 vfta, index; 4957 4932 4958 - if ((adapter->hw.mng_cookie.status & 4933 + if ((hw->mng_cookie.status & 4959 4934 E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) && 4960 4935 (vid == adapter->mng_vlan_id)) 4961 4936 return; 4962 4937 /* add VID to filter table */ 4963 4938 index = (vid >> 5) & 0x7F; 4964 - vfta = E1000_READ_REG_ARRAY(&adapter->hw, VFTA, index); 4939 + vfta = E1000_READ_REG_ARRAY(hw, VFTA, index); 4965 4940 vfta |= (1 << (vid & 0x1F)); 4966 - e1000_write_vfta(&adapter->hw, index, vfta); 4941 + e1000_write_vfta(hw, index, vfta); 4967 4942 } 4968 4943 4969 4944 static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) 4970 4945 { 4971 4946 struct e1000_adapter *adapter = netdev_priv(netdev); 4947 + struct e1000_hw *hw = &adapter->hw; 4972 4948 u32 vfta, index; 4973 4949 4974 4950 if (!test_bit(__E1000_DOWN, &adapter->flags)) ··· 4979 4951 if (!test_bit(__E1000_DOWN, &adapter->flags)) 4980 4952 e1000_irq_enable(adapter); 4981 4953 4982 - if ((adapter->hw.mng_cookie.status & 4954 + if ((hw->mng_cookie.status & 4983 4955 E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) && 4984 4956 (vid == adapter->mng_vlan_id)) { 4985 4957 /* release control to f/w */ ··· 4989 4961 4990 4962 /* remove VID from filter table */ 4991 4963 index = (vid >> 5) & 0x7F; 4992 - vfta = E1000_READ_REG_ARRAY(&adapter->hw, VFTA, index); 4964 + vfta = E1000_READ_REG_ARRAY(hw, VFTA, index); 4993 4965 vfta &= ~(1 << (vid & 0x1F)); 4994 - e1000_write_vfta(&adapter->hw, index, vfta); 4966 + e1000_write_vfta(hw, index, vfta); 4995 4967 } 4996 4968 4997 4969 static void e1000_restore_vlan(struct e1000_adapter *adapter) ··· 5010 4982 5011 4983 int e1000_set_spd_dplx(struct e1000_adapter *adapter, u16 spddplx) 5012 4984 { 5013 - adapter->hw.autoneg = 0; 4985 + struct e1000_hw *hw = &adapter->hw; 4986 + 4987 + hw->autoneg = 0; 5014 4988 5015 4989 /* Fiber NICs only allow 1000 gbps Full duplex */ 5016 - if ((adapter->hw.media_type == e1000_media_type_fiber) && 4990 + if ((hw->media_type == e1000_media_type_fiber) && 5017 4991 spddplx != (SPEED_1000 + DUPLEX_FULL)) { 5018 4992 DPRINTK(PROBE, ERR, "Unsupported Speed/Duplex configuration\n"); 5019 4993 return -EINVAL; ··· 5023 4993 5024 4994 switch (spddplx) { 5025 4995 case SPEED_10 + DUPLEX_HALF: 5026 - adapter->hw.forced_speed_duplex = e1000_10_half; 4996 + hw->forced_speed_duplex = e1000_10_half; 5027 4997 break; 5028 4998 case SPEED_10 + DUPLEX_FULL: 5029 - adapter->hw.forced_speed_duplex = e1000_10_full; 4999 + hw->forced_speed_duplex = e1000_10_full; 5030 5000 break; 5031 5001 case SPEED_100 + DUPLEX_HALF: 5032 - adapter->hw.forced_speed_duplex = e1000_100_half; 5002 + hw->forced_speed_duplex = e1000_100_half; 5033 5003 break; 5034 5004 case SPEED_100 + DUPLEX_FULL: 5035 - adapter->hw.forced_speed_duplex = e1000_100_full; 5005 + hw->forced_speed_duplex = e1000_100_full; 5036 5006 break; 5037 5007 case SPEED_1000 + DUPLEX_FULL: 5038 - adapter->hw.autoneg = 1; 5039 - adapter->hw.autoneg_advertised = ADVERTISE_1000_FULL; 5008 + hw->autoneg = 1; 5009 + hw->autoneg_advertised = ADVERTISE_1000_FULL; 5040 5010 break; 5041 5011 case SPEED_1000 + DUPLEX_HALF: /* not supported */ 5042 5012 default: ··· 5050 5020 { 5051 5021 struct net_device *netdev = pci_get_drvdata(pdev); 5052 5022 struct e1000_adapter *adapter = netdev_priv(netdev); 5023 + struct e1000_hw *hw = &adapter->hw; 5053 5024 u32 ctrl, ctrl_ext, rctl, status; 5054 5025 u32 wufc = adapter->wol; 5055 5026 #ifdef CONFIG_PM ··· 5070 5039 return retval; 5071 5040 #endif 5072 5041 5073 - status = E1000_READ_REG(&adapter->hw, STATUS); 5042 + status = er32(STATUS); 5074 5043 if (status & E1000_STATUS_LU) 5075 5044 wufc &= ~E1000_WUFC_LNKC; 5076 5045 ··· 5080 5049 5081 5050 /* turn on all-multi mode if wake on multicast is enabled */ 5082 5051 if (wufc & E1000_WUFC_MC) { 5083 - rctl = E1000_READ_REG(&adapter->hw, RCTL); 5052 + rctl = er32(RCTL); 5084 5053 rctl |= E1000_RCTL_MPE; 5085 - E1000_WRITE_REG(&adapter->hw, RCTL, rctl); 5054 + ew32(RCTL, rctl); 5086 5055 } 5087 5056 5088 - if (adapter->hw.mac_type >= e1000_82540) { 5089 - ctrl = E1000_READ_REG(&adapter->hw, CTRL); 5057 + if (hw->mac_type >= e1000_82540) { 5058 + ctrl = er32(CTRL); 5090 5059 /* advertise wake from D3Cold */ 5091 5060 #define E1000_CTRL_ADVD3WUC 0x00100000 5092 5061 /* phy power management enable */ 5093 5062 #define E1000_CTRL_EN_PHY_PWR_MGMT 0x00200000 5094 5063 ctrl |= E1000_CTRL_ADVD3WUC | 5095 5064 E1000_CTRL_EN_PHY_PWR_MGMT; 5096 - E1000_WRITE_REG(&adapter->hw, CTRL, ctrl); 5065 + ew32(CTRL, ctrl); 5097 5066 } 5098 5067 5099 - if (adapter->hw.media_type == e1000_media_type_fiber || 5100 - adapter->hw.media_type == e1000_media_type_internal_serdes) { 5068 + if (hw->media_type == e1000_media_type_fiber || 5069 + hw->media_type == e1000_media_type_internal_serdes) { 5101 5070 /* keep the laser running in D3 */ 5102 - ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT); 5071 + ctrl_ext = er32(CTRL_EXT); 5103 5072 ctrl_ext |= E1000_CTRL_EXT_SDP7_DATA; 5104 - E1000_WRITE_REG(&adapter->hw, CTRL_EXT, ctrl_ext); 5073 + ew32(CTRL_EXT, ctrl_ext); 5105 5074 } 5106 5075 5107 5076 /* Allow time for pending master requests to run */ 5108 - e1000_disable_pciex_master(&adapter->hw); 5077 + e1000_disable_pciex_master(hw); 5109 5078 5110 - E1000_WRITE_REG(&adapter->hw, WUC, E1000_WUC_PME_EN); 5111 - E1000_WRITE_REG(&adapter->hw, WUFC, wufc); 5079 + ew32(WUC, E1000_WUC_PME_EN); 5080 + ew32(WUFC, wufc); 5112 5081 pci_enable_wake(pdev, PCI_D3hot, 1); 5113 5082 pci_enable_wake(pdev, PCI_D3cold, 1); 5114 5083 } else { 5115 - E1000_WRITE_REG(&adapter->hw, WUC, 0); 5116 - E1000_WRITE_REG(&adapter->hw, WUFC, 0); 5084 + ew32(WUC, 0); 5085 + ew32(WUFC, 0); 5117 5086 pci_enable_wake(pdev, PCI_D3hot, 0); 5118 5087 pci_enable_wake(pdev, PCI_D3cold, 0); 5119 5088 } ··· 5126 5095 pci_enable_wake(pdev, PCI_D3cold, 1); 5127 5096 } 5128 5097 5129 - if (adapter->hw.phy_type == e1000_phy_igp_3) 5130 - e1000_phy_powerdown_workaround(&adapter->hw); 5098 + if (hw->phy_type == e1000_phy_igp_3) 5099 + e1000_phy_powerdown_workaround(hw); 5131 5100 5132 5101 if (netif_running(netdev)) 5133 5102 e1000_free_irq(adapter); ··· 5148 5117 { 5149 5118 struct net_device *netdev = pci_get_drvdata(pdev); 5150 5119 struct e1000_adapter *adapter = netdev_priv(netdev); 5120 + struct e1000_hw *hw = &adapter->hw; 5151 5121 u32 err; 5152 5122 5153 5123 pci_set_power_state(pdev, PCI_D0); ··· 5167 5135 5168 5136 e1000_power_up_phy(adapter); 5169 5137 e1000_reset(adapter); 5170 - E1000_WRITE_REG(&adapter->hw, WUS, ~0); 5138 + ew32(WUS, ~0); 5171 5139 5172 5140 e1000_init_manageability(adapter); 5173 5141 ··· 5180 5148 * DRV_LOAD until the interface is up. For all other cases, 5181 5149 * let the f/w know that the h/w is now under the control 5182 5150 * of the driver. */ 5183 - if (adapter->hw.mac_type != e1000_82573 || 5184 - !e1000_check_mng_mode(&adapter->hw)) 5151 + if (hw->mac_type != e1000_82573 || 5152 + !e1000_check_mng_mode(hw)) 5185 5153 e1000_get_hw_control(adapter); 5186 5154 5187 5155 return 0; ··· 5247 5215 { 5248 5216 struct net_device *netdev = pci_get_drvdata(pdev); 5249 5217 struct e1000_adapter *adapter = netdev->priv; 5218 + struct e1000_hw *hw = &adapter->hw; 5250 5219 5251 5220 if (pci_enable_device(pdev)) { 5252 5221 printk(KERN_ERR "e1000: Cannot re-enable PCI device after reset.\n"); ··· 5259 5226 pci_enable_wake(pdev, PCI_D3cold, 0); 5260 5227 5261 5228 e1000_reset(adapter); 5262 - E1000_WRITE_REG(&adapter->hw, WUS, ~0); 5229 + ew32(WUS, ~0); 5263 5230 5264 5231 return PCI_ERS_RESULT_RECOVERED; 5265 5232 } ··· 5276 5243 { 5277 5244 struct net_device *netdev = pci_get_drvdata(pdev); 5278 5245 struct e1000_adapter *adapter = netdev->priv; 5246 + struct e1000_hw *hw = &adapter->hw; 5279 5247 5280 5248 e1000_init_manageability(adapter); 5281 5249 ··· 5293 5259 * DRV_LOAD until the interface is up. For all other cases, 5294 5260 * let the f/w know that the h/w is now under the control 5295 5261 * of the driver. */ 5296 - if (adapter->hw.mac_type != e1000_82573 || 5297 - !e1000_check_mng_mode(&adapter->hw)) 5262 + if (hw->mac_type != e1000_82573 || 5263 + !e1000_check_mng_mode(hw)) 5298 5264 e1000_get_hw_control(adapter); 5299 5265 5300 5266 }
+7 -7
drivers/net/e1000/e1000_osdep.h
··· 55 55 #define DEBUGOUT7 DEBUGOUT3 56 56 57 57 58 - #define E1000_WRITE_REG(a, reg, value) ( \ 59 - writel((value), ((a)->hw_addr + \ 60 - (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg)))) 58 + #define er32(reg)\ 59 + (readl(hw->hw_addr + ((hw->mac_type >= e1000_82543) \ 60 + ? E1000_##reg : E1000_82542_##reg))) 61 61 62 - #define E1000_READ_REG(a, reg) ( \ 63 - readl((a)->hw_addr + \ 64 - (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg))) 62 + #define ew32(reg, value) \ 63 + (writel((value), (hw->hw_addr + ((hw->mac_type >= e1000_82543) \ 64 + ? E1000_##reg : E1000_82542_##reg)))) 65 65 66 66 #define E1000_WRITE_REG_ARRAY(a, reg, offset, value) ( \ 67 67 writel((value), ((a)->hw_addr + \ ··· 96 96 (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 97 97 (offset))) 98 98 99 - #define E1000_WRITE_FLUSH(a) E1000_READ_REG(a, STATUS) 99 + #define E1000_WRITE_FLUSH() er32(STATUS) 100 100 101 101 #define E1000_WRITE_ICH_FLASH_REG(a, reg, value) ( \ 102 102 writel((value), ((a)->flash_address + reg)))