Commit 4153577a authored by Joe Perches's avatar Joe Perches Committed by David S. Miller

tg3: Use different macros for pci_chip_rev_id accesses

Upper case macros for various chip attributes are slightly
difficult to read and are a bit out of characterto the other
tg3_<foo> attribute functions.

Convert:

GET_ASIC_REV(tp->pci_chip_rev_id)       -> tg3_asic_rev(tp)
GET_CHIP_REV(tp->pci_chip_rev_id)       -> tg3_chip_rev(tp)

Remove:
GET_METAL_REV(tp->pci_chip_rev_id)      -> tg3_metal_rev(tp) (unused)

Add:
tg3_chip_rev_id(tp) for tp->pci_chip_rev_id so access styles
are similar to tg3_asic_rev and tg3_chip_rev.

These macros are not converted to static inline functions
because gcc (tested with 4.7.2) is currently unable to
optimize the object code it produces the same way and code
is otherwise larger.
Signed-off-by: default avatarJoe Perches <joe@perches.com>
Acked-by: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 717ff727
...@@ -618,7 +618,7 @@ static void tg3_write_mem(struct tg3 *tp, u32 off, u32 val) ...@@ -618,7 +618,7 @@ static void tg3_write_mem(struct tg3 *tp, u32 off, u32 val)
{ {
unsigned long flags; unsigned long flags;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906 && if (tg3_asic_rev(tp) == ASIC_REV_5906 &&
(off >= NIC_SRAM_STATS_BLK) && (off < NIC_SRAM_TX_BUFFER_DESC)) (off >= NIC_SRAM_STATS_BLK) && (off < NIC_SRAM_TX_BUFFER_DESC))
return; return;
...@@ -643,7 +643,7 @@ static void tg3_read_mem(struct tg3 *tp, u32 off, u32 *val) ...@@ -643,7 +643,7 @@ static void tg3_read_mem(struct tg3 *tp, u32 off, u32 *val)
{ {
unsigned long flags; unsigned long flags;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906 && if (tg3_asic_rev(tp) == ASIC_REV_5906 &&
(off >= NIC_SRAM_STATS_BLK) && (off < NIC_SRAM_TX_BUFFER_DESC)) { (off >= NIC_SRAM_STATS_BLK) && (off < NIC_SRAM_TX_BUFFER_DESC)) {
*val = 0; *val = 0;
return; return;
...@@ -671,7 +671,7 @@ static void tg3_ape_lock_init(struct tg3 *tp) ...@@ -671,7 +671,7 @@ static void tg3_ape_lock_init(struct tg3 *tp)
int i; int i;
u32 regbase, bit; u32 regbase, bit;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761) if (tg3_asic_rev(tp) == ASIC_REV_5761)
regbase = TG3_APE_LOCK_GRANT; regbase = TG3_APE_LOCK_GRANT;
else else
regbase = TG3_APE_PER_LOCK_GRANT; regbase = TG3_APE_PER_LOCK_GRANT;
...@@ -707,7 +707,7 @@ static int tg3_ape_lock(struct tg3 *tp, int locknum) ...@@ -707,7 +707,7 @@ static int tg3_ape_lock(struct tg3 *tp, int locknum)
switch (locknum) { switch (locknum) {
case TG3_APE_LOCK_GPIO: case TG3_APE_LOCK_GPIO:
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761) if (tg3_asic_rev(tp) == ASIC_REV_5761)
return 0; return 0;
case TG3_APE_LOCK_GRC: case TG3_APE_LOCK_GRC:
case TG3_APE_LOCK_MEM: case TG3_APE_LOCK_MEM:
...@@ -726,7 +726,7 @@ static int tg3_ape_lock(struct tg3 *tp, int locknum) ...@@ -726,7 +726,7 @@ static int tg3_ape_lock(struct tg3 *tp, int locknum)
return -EINVAL; return -EINVAL;
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761) { if (tg3_asic_rev(tp) == ASIC_REV_5761) {
req = TG3_APE_LOCK_REQ; req = TG3_APE_LOCK_REQ;
gnt = TG3_APE_LOCK_GRANT; gnt = TG3_APE_LOCK_GRANT;
} else { } else {
...@@ -764,7 +764,7 @@ static void tg3_ape_unlock(struct tg3 *tp, int locknum) ...@@ -764,7 +764,7 @@ static void tg3_ape_unlock(struct tg3 *tp, int locknum)
switch (locknum) { switch (locknum) {
case TG3_APE_LOCK_GPIO: case TG3_APE_LOCK_GPIO:
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761) if (tg3_asic_rev(tp) == ASIC_REV_5761)
return; return;
case TG3_APE_LOCK_GRC: case TG3_APE_LOCK_GRC:
case TG3_APE_LOCK_MEM: case TG3_APE_LOCK_MEM:
...@@ -783,7 +783,7 @@ static void tg3_ape_unlock(struct tg3 *tp, int locknum) ...@@ -783,7 +783,7 @@ static void tg3_ape_unlock(struct tg3 *tp, int locknum)
return; return;
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761) if (tg3_asic_rev(tp) == ASIC_REV_5761)
gnt = TG3_APE_LOCK_GRANT; gnt = TG3_APE_LOCK_GRANT;
else else
gnt = TG3_APE_PER_LOCK_GRANT; gnt = TG3_APE_PER_LOCK_GRANT;
...@@ -1479,7 +1479,7 @@ static void tg3_mdio_start(struct tg3 *tp) ...@@ -1479,7 +1479,7 @@ static void tg3_mdio_start(struct tg3 *tp)
udelay(80); udelay(80);
if (tg3_flag(tp, MDIOBUS_INITED) && if (tg3_flag(tp, MDIOBUS_INITED) &&
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785) tg3_asic_rev(tp) == ASIC_REV_5785)
tg3_mdio_config_5785(tp); tg3_mdio_config_5785(tp);
} }
...@@ -1494,7 +1494,7 @@ static int tg3_mdio_init(struct tg3 *tp) ...@@ -1494,7 +1494,7 @@ static int tg3_mdio_init(struct tg3 *tp)
tp->phy_addr = tp->pci_fn + 1; tp->phy_addr = tp->pci_fn + 1;
if (tp->pci_chip_rev_id != CHIPREV_ID_5717_A0) if (tg3_chip_rev_id(tp) != CHIPREV_ID_5717_A0)
is_serdes = tr32(SG_DIG_STATUS) & SG_DIG_IS_SERDES; is_serdes = tr32(SG_DIG_STATUS) & SG_DIG_IS_SERDES;
else else
is_serdes = tr32(TG3_CPMU_PHY_STRAP) & is_serdes = tr32(TG3_CPMU_PHY_STRAP) &
...@@ -1582,7 +1582,7 @@ static int tg3_mdio_init(struct tg3 *tp) ...@@ -1582,7 +1582,7 @@ static int tg3_mdio_init(struct tg3 *tp)
tg3_flag_set(tp, MDIOBUS_INITED); tg3_flag_set(tp, MDIOBUS_INITED);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785) if (tg3_asic_rev(tp) == ASIC_REV_5785)
tg3_mdio_config_5785(tp); tg3_mdio_config_5785(tp);
return 0; return 0;
...@@ -1804,7 +1804,7 @@ static int tg3_poll_fw(struct tg3 *tp) ...@@ -1804,7 +1804,7 @@ static int tg3_poll_fw(struct tg3 *tp)
return 0; return 0;
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { if (tg3_asic_rev(tp) == ASIC_REV_5906) {
/* Wait up to 20ms for init done. */ /* Wait up to 20ms for init done. */
for (i = 0; i < 200; i++) { for (i = 0; i < 200; i++) {
if (tr32(VCPU_STATUS) & VCPU_STATUS_INIT_DONE) if (tr32(VCPU_STATUS) & VCPU_STATUS_INIT_DONE)
...@@ -1833,7 +1833,7 @@ static int tg3_poll_fw(struct tg3 *tp) ...@@ -1833,7 +1833,7 @@ static int tg3_poll_fw(struct tg3 *tp)
netdev_info(tp->dev, "No firmware running\n"); netdev_info(tp->dev, "No firmware running\n");
} }
if (tp->pci_chip_rev_id == CHIPREV_ID_57765_A0) { if (tg3_chip_rev_id(tp) == CHIPREV_ID_57765_A0) {
/* The 57765 A0 needs a little more /* The 57765 A0 needs a little more
* time to do some important work. * time to do some important work.
*/ */
...@@ -1963,7 +1963,7 @@ static void tg3_adjust_link(struct net_device *dev) ...@@ -1963,7 +1963,7 @@ static void tg3_adjust_link(struct net_device *dev)
if (phydev->speed == SPEED_100 || phydev->speed == SPEED_10) if (phydev->speed == SPEED_100 || phydev->speed == SPEED_10)
mac_mode |= MAC_MODE_PORT_MODE_MII; mac_mode |= MAC_MODE_PORT_MODE_MII;
else if (phydev->speed == SPEED_1000 || else if (phydev->speed == SPEED_1000 ||
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5785) tg3_asic_rev(tp) != ASIC_REV_5785)
mac_mode |= MAC_MODE_PORT_MODE_GMII; mac_mode |= MAC_MODE_PORT_MODE_GMII;
else else
mac_mode |= MAC_MODE_PORT_MODE_MII; mac_mode |= MAC_MODE_PORT_MODE_MII;
...@@ -1990,7 +1990,7 @@ static void tg3_adjust_link(struct net_device *dev) ...@@ -1990,7 +1990,7 @@ static void tg3_adjust_link(struct net_device *dev)
udelay(40); udelay(40);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785) { if (tg3_asic_rev(tp) == ASIC_REV_5785) {
if (phydev->speed == SPEED_10) if (phydev->speed == SPEED_10)
tw32(MAC_MI_STAT, tw32(MAC_MI_STAT,
MAC_MI_STAT_10MBPS_MODE | MAC_MI_STAT_10MBPS_MODE |
...@@ -2182,7 +2182,7 @@ static void tg3_phy_toggle_apd(struct tg3 *tp, bool enable) ...@@ -2182,7 +2182,7 @@ static void tg3_phy_toggle_apd(struct tg3 *tp, bool enable)
MII_TG3_MISC_SHDW_SCR5_DLPTLM | MII_TG3_MISC_SHDW_SCR5_DLPTLM |
MII_TG3_MISC_SHDW_SCR5_SDTL | MII_TG3_MISC_SHDW_SCR5_SDTL |
MII_TG3_MISC_SHDW_SCR5_C125OE; MII_TG3_MISC_SHDW_SCR5_C125OE;
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5784 || !enable) if (tg3_asic_rev(tp) != ASIC_REV_5784 || !enable)
reg |= MII_TG3_MISC_SHDW_SCR5_DLLAPD; reg |= MII_TG3_MISC_SHDW_SCR5_DLLAPD;
tg3_writephy(tp, MII_TG3_MISC_SHDW, reg); tg3_writephy(tp, MII_TG3_MISC_SHDW, reg);
...@@ -2337,8 +2337,8 @@ static void tg3_phy_eee_enable(struct tg3 *tp) ...@@ -2337,8 +2337,8 @@ static void tg3_phy_eee_enable(struct tg3 *tp)
u32 val; u32 val;
if (tp->link_config.active_speed == SPEED_1000 && if (tp->link_config.active_speed == SPEED_1000 &&
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || (tg3_asic_rev(tp) == ASIC_REV_5717 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || tg3_asic_rev(tp) == ASIC_REV_5719 ||
tg3_flag(tp, 57765_CLASS)) && tg3_flag(tp, 57765_CLASS)) &&
!tg3_phy_toggle_auxctl_smdsp(tp, true)) { !tg3_phy_toggle_auxctl_smdsp(tp, true)) {
val = MII_TG3_DSP_TAP26_ALNOKO | val = MII_TG3_DSP_TAP26_ALNOKO |
...@@ -2542,7 +2542,7 @@ static int tg3_phy_reset(struct tg3 *tp) ...@@ -2542,7 +2542,7 @@ static int tg3_phy_reset(struct tg3 *tp)
u32 val, cpmuctrl; u32 val, cpmuctrl;
int err; int err;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { if (tg3_asic_rev(tp) == ASIC_REV_5906) {
val = tr32(GRC_MISC_CFG); val = tr32(GRC_MISC_CFG);
tw32_f(GRC_MISC_CFG, val & ~GRC_MISC_CFG_EPHY_IDDQ); tw32_f(GRC_MISC_CFG, val & ~GRC_MISC_CFG_EPHY_IDDQ);
udelay(40); udelay(40);
...@@ -2557,9 +2557,9 @@ static int tg3_phy_reset(struct tg3 *tp) ...@@ -2557,9 +2557,9 @@ static int tg3_phy_reset(struct tg3 *tp)
tg3_link_report(tp); tg3_link_report(tp);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 || if (tg3_asic_rev(tp) == ASIC_REV_5703 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 || tg3_asic_rev(tp) == ASIC_REV_5704 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { tg3_asic_rev(tp) == ASIC_REV_5705) {
err = tg3_phy_reset_5703_4_5(tp); err = tg3_phy_reset_5703_4_5(tp);
if (err) if (err)
return err; return err;
...@@ -2567,8 +2567,8 @@ static int tg3_phy_reset(struct tg3 *tp) ...@@ -2567,8 +2567,8 @@ static int tg3_phy_reset(struct tg3 *tp)
} }
cpmuctrl = 0; cpmuctrl = 0;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 && if (tg3_asic_rev(tp) == ASIC_REV_5784 &&
GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5784_AX) { tg3_chip_rev(tp) != CHIPREV_5784_AX) {
cpmuctrl = tr32(TG3_CPMU_CTRL); cpmuctrl = tr32(TG3_CPMU_CTRL);
if (cpmuctrl & CPMU_CTRL_GPHY_10MB_RXONLY) if (cpmuctrl & CPMU_CTRL_GPHY_10MB_RXONLY)
tw32(TG3_CPMU_CTRL, tw32(TG3_CPMU_CTRL,
...@@ -2586,8 +2586,8 @@ static int tg3_phy_reset(struct tg3 *tp) ...@@ -2586,8 +2586,8 @@ static int tg3_phy_reset(struct tg3 *tp)
tw32(TG3_CPMU_CTRL, cpmuctrl); tw32(TG3_CPMU_CTRL, cpmuctrl);
} }
if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5784_AX || if (tg3_chip_rev(tp) == CHIPREV_5784_AX ||
GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5761_AX) { tg3_chip_rev(tp) == CHIPREV_5761_AX) {
val = tr32(TG3_CPMU_LSPD_1000MB_CLK); val = tr32(TG3_CPMU_LSPD_1000MB_CLK);
if ((val & CPMU_LSPD_1000MB_MACCLK_MASK) == if ((val & CPMU_LSPD_1000MB_MACCLK_MASK) ==
CPMU_LSPD_1000MB_MACCLK_12_5) { CPMU_LSPD_1000MB_MACCLK_12_5) {
...@@ -2665,12 +2665,12 @@ static int tg3_phy_reset(struct tg3 *tp) ...@@ -2665,12 +2665,12 @@ static int tg3_phy_reset(struct tg3 *tp)
val | MII_TG3_EXT_CTRL_FIFO_ELASTIC); val | MII_TG3_EXT_CTRL_FIFO_ELASTIC);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { if (tg3_asic_rev(tp) == ASIC_REV_5906) {
/* adjust output voltage */ /* adjust output voltage */
tg3_writephy(tp, MII_TG3_FET_PTEST, 0x12); tg3_writephy(tp, MII_TG3_FET_PTEST, 0x12);
} }
if (tp->pci_chip_rev_id == CHIPREV_ID_5762_A0) if (tg3_chip_rev_id(tp) == CHIPREV_ID_5762_A0)
tg3_phydsp_write(tp, 0xffb, 0x4000); tg3_phydsp_write(tp, 0xffb, 0x4000);
tg3_phy_toggle_automdix(tp, 1); tg3_phy_toggle_automdix(tp, 1);
...@@ -2698,8 +2698,8 @@ static inline u32 tg3_set_function_status(struct tg3 *tp, u32 newstat) ...@@ -2698,8 +2698,8 @@ static inline u32 tg3_set_function_status(struct tg3 *tp, u32 newstat)
{ {
u32 status, shift; u32 status, shift;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) tg3_asic_rev(tp) == ASIC_REV_5719)
status = tg3_ape_read32(tp, TG3_APE_GPIO_MSG); status = tg3_ape_read32(tp, TG3_APE_GPIO_MSG);
else else
status = tr32(TG3_CPMU_DRV_STATUS); status = tr32(TG3_CPMU_DRV_STATUS);
...@@ -2708,8 +2708,8 @@ static inline u32 tg3_set_function_status(struct tg3 *tp, u32 newstat) ...@@ -2708,8 +2708,8 @@ static inline u32 tg3_set_function_status(struct tg3 *tp, u32 newstat)
status &= ~(TG3_GPIO_MSG_MASK << shift); status &= ~(TG3_GPIO_MSG_MASK << shift);
status |= (newstat << shift); status |= (newstat << shift);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) tg3_asic_rev(tp) == ASIC_REV_5719)
tg3_ape_write32(tp, TG3_APE_GPIO_MSG, status); tg3_ape_write32(tp, TG3_APE_GPIO_MSG, status);
else else
tw32(TG3_CPMU_DRV_STATUS, status); tw32(TG3_CPMU_DRV_STATUS, status);
...@@ -2722,9 +2722,9 @@ static inline int tg3_pwrsrc_switch_to_vmain(struct tg3 *tp) ...@@ -2722,9 +2722,9 @@ static inline int tg3_pwrsrc_switch_to_vmain(struct tg3 *tp)
if (!tg3_flag(tp, IS_NIC)) if (!tg3_flag(tp, IS_NIC))
return 0; return 0;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || tg3_asic_rev(tp) == ASIC_REV_5719 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) { tg3_asic_rev(tp) == ASIC_REV_5720) {
if (tg3_ape_lock(tp, TG3_APE_LOCK_GPIO)) if (tg3_ape_lock(tp, TG3_APE_LOCK_GPIO))
return -EIO; return -EIO;
...@@ -2747,8 +2747,8 @@ static void tg3_pwrsrc_die_with_vmain(struct tg3 *tp) ...@@ -2747,8 +2747,8 @@ static void tg3_pwrsrc_die_with_vmain(struct tg3 *tp)
u32 grc_local_ctrl; u32 grc_local_ctrl;
if (!tg3_flag(tp, IS_NIC) || if (!tg3_flag(tp, IS_NIC) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || tg3_asic_rev(tp) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) tg3_asic_rev(tp) == ASIC_REV_5701)
return; return;
grc_local_ctrl = tp->grc_local_ctrl | GRC_LCLCTRL_GPIO_OE1; grc_local_ctrl = tp->grc_local_ctrl | GRC_LCLCTRL_GPIO_OE1;
...@@ -2771,8 +2771,8 @@ static void tg3_pwrsrc_switch_to_vaux(struct tg3 *tp) ...@@ -2771,8 +2771,8 @@ static void tg3_pwrsrc_switch_to_vaux(struct tg3 *tp)
if (!tg3_flag(tp, IS_NIC)) if (!tg3_flag(tp, IS_NIC))
return; return;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) { tg3_asic_rev(tp) == ASIC_REV_5701) {
tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl |
(GRC_LCLCTRL_GPIO_OE0 | (GRC_LCLCTRL_GPIO_OE0 |
GRC_LCLCTRL_GPIO_OE1 | GRC_LCLCTRL_GPIO_OE1 |
...@@ -2804,7 +2804,7 @@ static void tg3_pwrsrc_switch_to_vaux(struct tg3 *tp) ...@@ -2804,7 +2804,7 @@ static void tg3_pwrsrc_switch_to_vaux(struct tg3 *tp)
u32 grc_local_ctrl = 0; u32 grc_local_ctrl = 0;
/* Workaround to prevent overdrawing Amps. */ /* Workaround to prevent overdrawing Amps. */
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714) { if (tg3_asic_rev(tp) == ASIC_REV_5714) {
grc_local_ctrl |= GRC_LCLCTRL_GPIO_OE3; grc_local_ctrl |= GRC_LCLCTRL_GPIO_OE3;
tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl |
grc_local_ctrl, grc_local_ctrl,
...@@ -2876,9 +2876,9 @@ static void tg3_frob_aux_power(struct tg3 *tp, bool include_wol) ...@@ -2876,9 +2876,9 @@ static void tg3_frob_aux_power(struct tg3 *tp, bool include_wol)
if (!tg3_flag(tp, IS_NIC) || tg3_flag(tp, 57765_CLASS)) if (!tg3_flag(tp, IS_NIC) || tg3_flag(tp, 57765_CLASS))
return; return;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || tg3_asic_rev(tp) == ASIC_REV_5719 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) { tg3_asic_rev(tp) == ASIC_REV_5720) {
tg3_frob_aux_power_5717(tp, include_wol ? tg3_frob_aux_power_5717(tp, include_wol ?
tg3_flag(tp, WOL_ENABLE) != 0 : 0); tg3_flag(tp, WOL_ENABLE) != 0 : 0);
return; return;
...@@ -2930,7 +2930,7 @@ static void tg3_power_down_phy(struct tg3 *tp, bool do_low_power) ...@@ -2930,7 +2930,7 @@ static void tg3_power_down_phy(struct tg3 *tp, bool do_low_power)
u32 val; u32 val;
if (tp->phy_flags & TG3_PHYFLG_PHY_SERDES) { if (tp->phy_flags & TG3_PHYFLG_PHY_SERDES) {
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) { if (tg3_asic_rev(tp) == ASIC_REV_5704) {
u32 sg_dig_ctrl = tr32(SG_DIG_CTRL); u32 sg_dig_ctrl = tr32(SG_DIG_CTRL);
u32 serdes_cfg = tr32(MAC_SERDES_CFG); u32 serdes_cfg = tr32(MAC_SERDES_CFG);
...@@ -2942,7 +2942,7 @@ static void tg3_power_down_phy(struct tg3 *tp, bool do_low_power) ...@@ -2942,7 +2942,7 @@ static void tg3_power_down_phy(struct tg3 *tp, bool do_low_power)
return; return;
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { if (tg3_asic_rev(tp) == ASIC_REV_5906) {
tg3_bmcr_reset(tp); tg3_bmcr_reset(tp);
val = tr32(GRC_MISC_CFG); val = tr32(GRC_MISC_CFG);
tw32_f(GRC_MISC_CFG, val | GRC_MISC_CFG_EPHY_IDDQ); tw32_f(GRC_MISC_CFG, val | GRC_MISC_CFG_EPHY_IDDQ);
...@@ -2981,16 +2981,16 @@ static void tg3_power_down_phy(struct tg3 *tp, bool do_low_power) ...@@ -2981,16 +2981,16 @@ static void tg3_power_down_phy(struct tg3 *tp, bool do_low_power)
/* The PHY should not be powered down on some chips because /* The PHY should not be powered down on some chips because
* of bugs. * of bugs.
*/ */
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 || tg3_asic_rev(tp) == ASIC_REV_5704 ||
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5780 && (tg3_asic_rev(tp) == ASIC_REV_5780 &&
(tp->phy_flags & TG3_PHYFLG_MII_SERDES)) || (tp->phy_flags & TG3_PHYFLG_MII_SERDES)) ||
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 && (tg3_asic_rev(tp) == ASIC_REV_5717 &&
!tp->pci_fn)) !tp->pci_fn))
return; return;
if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5784_AX || if (tg3_chip_rev(tp) == CHIPREV_5784_AX ||
GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5761_AX) { tg3_chip_rev(tp) == CHIPREV_5761_AX) {
val = tr32(TG3_CPMU_LSPD_1000MB_CLK); val = tr32(TG3_CPMU_LSPD_1000MB_CLK);
val &= ~CPMU_LSPD_1000MB_MACCLK_MASK; val &= ~CPMU_LSPD_1000MB_MACCLK_MASK;
val |= CPMU_LSPD_1000MB_MACCLK_12_5; val |= CPMU_LSPD_1000MB_MACCLK_12_5;
...@@ -3373,7 +3373,7 @@ static int tg3_nvram_write_block_buffered(struct tg3 *tp, u32 offset, u32 len, ...@@ -3373,7 +3373,7 @@ static int tg3_nvram_write_block_buffered(struct tg3 *tp, u32 offset, u32 len,
!tg3_flag(tp, 57765_PLUS)) !tg3_flag(tp, 57765_PLUS))
tw32(NVRAM_ADDR, phy_addr); tw32(NVRAM_ADDR, phy_addr);
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5752 && if (tg3_asic_rev(tp) != ASIC_REV_5752 &&
!tg3_flag(tp, 5755_PLUS) && !tg3_flag(tp, 5755_PLUS) &&
(tp->nvram_jedecnum == JEDEC_ST) && (tp->nvram_jedecnum == JEDEC_ST) &&
(nvram_cmd & NVRAM_CMD_FIRST)) { (nvram_cmd & NVRAM_CMD_FIRST)) {
...@@ -3458,7 +3458,7 @@ static int tg3_halt_cpu(struct tg3 *tp, u32 offset) ...@@ -3458,7 +3458,7 @@ static int tg3_halt_cpu(struct tg3 *tp, u32 offset)
BUG_ON(offset == TX_CPU_BASE && tg3_flag(tp, 5705_PLUS)); BUG_ON(offset == TX_CPU_BASE && tg3_flag(tp, 5705_PLUS));
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { if (tg3_asic_rev(tp) == ASIC_REV_5906) {
u32 val = tr32(GRC_VCPU_EXT_CTRL); u32 val = tr32(GRC_VCPU_EXT_CTRL);
tw32(GRC_VCPU_EXT_CTRL, val | GRC_VCPU_EXT_CTRL_HALT_CPU); tw32(GRC_VCPU_EXT_CTRL, val | GRC_VCPU_EXT_CTRL_HALT_CPU);
...@@ -3636,7 +3636,7 @@ static int tg3_load_tso_firmware(struct tg3 *tp) ...@@ -3636,7 +3636,7 @@ static int tg3_load_tso_firmware(struct tg3 *tp)
info.fw_len = tp->fw->size - 12; info.fw_len = tp->fw->size - 12;
info.fw_data = &fw_data[3]; info.fw_data = &fw_data[3];
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { if (tg3_asic_rev(tp) == ASIC_REV_5705) {
cpu_base = RX_CPU_BASE; cpu_base = RX_CPU_BASE;
cpu_scratch_base = NIC_SRAM_MBUF_POOL_BASE5705; cpu_scratch_base = NIC_SRAM_MBUF_POOL_BASE5705;
} else { } else {
...@@ -3694,8 +3694,8 @@ static void __tg3_set_mac_addr(struct tg3 *tp, int skip_mac_1) ...@@ -3694,8 +3694,8 @@ static void __tg3_set_mac_addr(struct tg3 *tp, int skip_mac_1)
tw32(MAC_ADDR_0_LOW + (i * 8), addr_low); tw32(MAC_ADDR_0_LOW + (i * 8), addr_low);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 || if (tg3_asic_rev(tp) == ASIC_REV_5703 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) { tg3_asic_rev(tp) == ASIC_REV_5704) {
for (i = 0; i < 12; i++) { for (i = 0; i < 12; i++) {
tw32(MAC_EXTADDR_0_HIGH + (i * 8), addr_high); tw32(MAC_EXTADDR_0_HIGH + (i * 8), addr_high);
tw32(MAC_EXTADDR_0_LOW + (i * 8), addr_low); tw32(MAC_EXTADDR_0_LOW + (i * 8), addr_low);
...@@ -3814,7 +3814,7 @@ static int tg3_power_down_prepare(struct tg3 *tp) ...@@ -3814,7 +3814,7 @@ static int tg3_power_down_prepare(struct tg3 *tp)
tg3_setup_phy(tp, 0); tg3_setup_phy(tp, 0);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { if (tg3_asic_rev(tp) == ASIC_REV_5906) {
u32 val; u32 val;
val = tr32(GRC_VCPU_EXT_CTRL); val = tr32(GRC_VCPU_EXT_CTRL);
...@@ -3856,8 +3856,7 @@ static int tg3_power_down_prepare(struct tg3 *tp) ...@@ -3856,8 +3856,7 @@ static int tg3_power_down_prepare(struct tg3 *tp)
mac_mode = MAC_MODE_PORT_MODE_MII; mac_mode = MAC_MODE_PORT_MODE_MII;
mac_mode |= tp->mac_mode & MAC_MODE_LINK_POLARITY; mac_mode |= tp->mac_mode & MAC_MODE_LINK_POLARITY;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == if (tg3_asic_rev(tp) == ASIC_REV_5700) {
ASIC_REV_5700) {
u32 speed = tg3_flag(tp, WOL_SPEED_100MB) ? u32 speed = tg3_flag(tp, WOL_SPEED_100MB) ?
SPEED_100 : SPEED_10; SPEED_100 : SPEED_10;
if (tg3_5700_link_polarity(tp, speed)) if (tg3_5700_link_polarity(tp, speed))
...@@ -3890,8 +3889,8 @@ static int tg3_power_down_prepare(struct tg3 *tp) ...@@ -3890,8 +3889,8 @@ static int tg3_power_down_prepare(struct tg3 *tp)
} }
if (!tg3_flag(tp, WOL_SPEED_100MB) && if (!tg3_flag(tp, WOL_SPEED_100MB) &&
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || (tg3_asic_rev(tp) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)) { tg3_asic_rev(tp) == ASIC_REV_5701)) {
u32 base_val; u32 base_val;
base_val = tp->pci_clock_ctrl; base_val = tp->pci_clock_ctrl;
...@@ -3902,13 +3901,13 @@ static int tg3_power_down_prepare(struct tg3 *tp) ...@@ -3902,13 +3901,13 @@ static int tg3_power_down_prepare(struct tg3 *tp)
CLOCK_CTRL_PWRDOWN_PLL133, 40); CLOCK_CTRL_PWRDOWN_PLL133, 40);
} else if (tg3_flag(tp, 5780_CLASS) || } else if (tg3_flag(tp, 5780_CLASS) ||
tg3_flag(tp, CPMU_PRESENT) || tg3_flag(tp, CPMU_PRESENT) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { tg3_asic_rev(tp) == ASIC_REV_5906) {
/* do nothing */ /* do nothing */
} else if (!(tg3_flag(tp, 5750_PLUS) && tg3_flag(tp, ENABLE_ASF))) { } else if (!(tg3_flag(tp, 5750_PLUS) && tg3_flag(tp, ENABLE_ASF))) {
u32 newbits1, newbits2; u32 newbits1, newbits2;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) { tg3_asic_rev(tp) == ASIC_REV_5701) {
newbits1 = (CLOCK_CTRL_RXCLK_DISABLE | newbits1 = (CLOCK_CTRL_RXCLK_DISABLE |
CLOCK_CTRL_TXCLK_DISABLE | CLOCK_CTRL_TXCLK_DISABLE |
CLOCK_CTRL_ALTCLK); CLOCK_CTRL_ALTCLK);
...@@ -3930,8 +3929,8 @@ static int tg3_power_down_prepare(struct tg3 *tp) ...@@ -3930,8 +3929,8 @@ static int tg3_power_down_prepare(struct tg3 *tp)
if (!tg3_flag(tp, 5705_PLUS)) { if (!tg3_flag(tp, 5705_PLUS)) {
u32 newbits3; u32 newbits3;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) { tg3_asic_rev(tp) == ASIC_REV_5701) {
newbits3 = (CLOCK_CTRL_RXCLK_DISABLE | newbits3 = (CLOCK_CTRL_RXCLK_DISABLE |
CLOCK_CTRL_TXCLK_DISABLE | CLOCK_CTRL_TXCLK_DISABLE |
CLOCK_CTRL_44MHZ_CORE); CLOCK_CTRL_44MHZ_CORE);
...@@ -3951,8 +3950,8 @@ static int tg3_power_down_prepare(struct tg3 *tp) ...@@ -3951,8 +3950,8 @@ static int tg3_power_down_prepare(struct tg3 *tp)
/* Workaround for unstable PLL clock */ /* Workaround for unstable PLL clock */
if ((!tg3_flag(tp, IS_SSB_CORE)) && if ((!tg3_flag(tp, IS_SSB_CORE)) &&
((GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_AX) || ((tg3_chip_rev(tp) == CHIPREV_5750_AX) ||
(GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_BX))) { (tg3_chip_rev(tp) == CHIPREV_5750_BX))) {
u32 val = tr32(0x7d00); u32 val = tr32(0x7d00);
val &= ~((1 << 16) | (1 << 4) | (1 << 2) | (1 << 1) | 1); val &= ~((1 << 16) | (1 << 4) | (1 << 2) | (1 << 1) | 1);
...@@ -4043,8 +4042,8 @@ static int tg3_phy_autoneg_cfg(struct tg3 *tp, u32 advertise, u32 flowctrl) ...@@ -4043,8 +4042,8 @@ static int tg3_phy_autoneg_cfg(struct tg3 *tp, u32 advertise, u32 flowctrl)
if (!(tp->phy_flags & TG3_PHYFLG_10_100_ONLY)) { if (!(tp->phy_flags & TG3_PHYFLG_10_100_ONLY)) {
new_adv = ethtool_adv_to_mii_ctrl1000_t(advertise); new_adv = ethtool_adv_to_mii_ctrl1000_t(advertise);
if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0 || if (tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0 ||
tp->pci_chip_rev_id == CHIPREV_ID_5701_B0) tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B0)
new_adv |= CTL1000_AS_MASTER | CTL1000_ENABLE_MASTER; new_adv |= CTL1000_AS_MASTER | CTL1000_ENABLE_MASTER;
err = tg3_writephy(tp, MII_CTRL1000, new_adv); err = tg3_writephy(tp, MII_CTRL1000, new_adv);
...@@ -4073,7 +4072,7 @@ static int tg3_phy_autoneg_cfg(struct tg3 *tp, u32 advertise, u32 flowctrl) ...@@ -4073,7 +4072,7 @@ static int tg3_phy_autoneg_cfg(struct tg3 *tp, u32 advertise, u32 flowctrl)
if (err) if (err)
val = 0; val = 0;
switch (GET_ASIC_REV(tp->pci_chip_rev_id)) { switch (tg3_asic_rev(tp)) {
case ASIC_REV_5717: case ASIC_REV_5717:
case ASIC_REV_57765: case ASIC_REV_57765:
case ASIC_REV_57766: case ASIC_REV_57766:
...@@ -4221,8 +4220,8 @@ static bool tg3_phy_copper_an_config_ok(struct tg3 *tp, u32 *lcladv) ...@@ -4221,8 +4220,8 @@ static bool tg3_phy_copper_an_config_ok(struct tg3 *tp, u32 *lcladv)
return false; return false;
if (tgtadv && if (tgtadv &&
(tp->pci_chip_rev_id == CHIPREV_ID_5701_A0 || (tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0 ||
tp->pci_chip_rev_id == CHIPREV_ID_5701_B0)) { tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B0)) {
tgtadv |= CTL1000_AS_MASTER | CTL1000_ENABLE_MASTER; tgtadv |= CTL1000_AS_MASTER | CTL1000_ENABLE_MASTER;
tg3_ctrl &= (ADVERTISE_1000HALF | ADVERTISE_1000FULL | tg3_ctrl &= (ADVERTISE_1000HALF | ADVERTISE_1000FULL |
CTL1000_AS_MASTER | CTL1000_ENABLE_MASTER); CTL1000_AS_MASTER | CTL1000_ENABLE_MASTER);
...@@ -4306,9 +4305,9 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset) ...@@ -4306,9 +4305,9 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset)
/* Some third-party PHYs need to be reset on link going /* Some third-party PHYs need to be reset on link going
* down. * down.
*/ */
if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 || if ((tg3_asic_rev(tp) == ASIC_REV_5703 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 || tg3_asic_rev(tp) == ASIC_REV_5704 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) && tg3_asic_rev(tp) == ASIC_REV_5705) &&
tp->link_up) { tp->link_up) {
tg3_readphy(tp, MII_BMSR, &bmsr); tg3_readphy(tp, MII_BMSR, &bmsr);
if (!tg3_readphy(tp, MII_BMSR, &bmsr) && if (!tg3_readphy(tp, MII_BMSR, &bmsr) &&
...@@ -4350,8 +4349,8 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset) ...@@ -4350,8 +4349,8 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset)
return err; return err;
} }
} }
} else if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0 || } else if (tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0 ||
tp->pci_chip_rev_id == CHIPREV_ID_5701_B0) { tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B0) {
/* 5701 {A0,B0} CRC bug workaround */ /* 5701 {A0,B0} CRC bug workaround */
tg3_writephy(tp, 0x15, 0x0a75); tg3_writephy(tp, 0x15, 0x0a75);
tg3_writephy(tp, MII_TG3_MISC_SHDW, 0x8c68); tg3_writephy(tp, MII_TG3_MISC_SHDW, 0x8c68);
...@@ -4368,8 +4367,8 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset) ...@@ -4368,8 +4367,8 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset)
else if (!(tp->phy_flags & TG3_PHYFLG_IS_FET)) else if (!(tp->phy_flags & TG3_PHYFLG_IS_FET))
tg3_writephy(tp, MII_TG3_IMASK, ~0); tg3_writephy(tp, MII_TG3_IMASK, ~0);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) { tg3_asic_rev(tp) == ASIC_REV_5701) {
if (tp->led_ctrl == LED_CTRL_MODE_PHY_1) if (tp->led_ctrl == LED_CTRL_MODE_PHY_1)
tg3_writephy(tp, MII_TG3_EXT_CTRL, tg3_writephy(tp, MII_TG3_EXT_CTRL,
MII_TG3_EXT_CTRL_LNK3_LED_MODE); MII_TG3_EXT_CTRL_LNK3_LED_MODE);
...@@ -4524,7 +4523,7 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset) ...@@ -4524,7 +4523,7 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset)
if (tp->link_config.active_duplex == DUPLEX_HALF) if (tp->link_config.active_duplex == DUPLEX_HALF)
tp->mac_mode |= MAC_MODE_HALF_DUPLEX; tp->mac_mode |= MAC_MODE_HALF_DUPLEX;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700) { if (tg3_asic_rev(tp) == ASIC_REV_5700) {
if (current_link_up == 1 && if (current_link_up == 1 &&
tg3_5700_link_polarity(tp, tp->link_config.active_speed)) tg3_5700_link_polarity(tp, tp->link_config.active_speed))
tp->mac_mode |= MAC_MODE_LINK_POLARITY; tp->mac_mode |= MAC_MODE_LINK_POLARITY;
...@@ -4536,7 +4535,7 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset) ...@@ -4536,7 +4535,7 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset)
* ??? send/receive packets... * ??? send/receive packets...
*/ */
if ((tp->phy_id & TG3_PHY_ID_MASK) == TG3_PHY_ID_BCM5411 && if ((tp->phy_id & TG3_PHY_ID_MASK) == TG3_PHY_ID_BCM5411 &&
tp->pci_chip_rev_id == CHIPREV_ID_5700_ALTIMA) { tg3_chip_rev_id(tp) == CHIPREV_ID_5700_ALTIMA) {
tp->mi_mode |= MAC_MI_MODE_AUTO_POLL; tp->mi_mode |= MAC_MI_MODE_AUTO_POLL;
tw32_f(MAC_MI_MODE, tp->mi_mode); tw32_f(MAC_MI_MODE, tp->mi_mode);
udelay(80); udelay(80);
...@@ -4555,7 +4554,7 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset) ...@@ -4555,7 +4554,7 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset)
} }
udelay(40); udelay(40);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 && if (tg3_asic_rev(tp) == ASIC_REV_5700 &&
current_link_up == 1 && current_link_up == 1 &&
tp->link_config.active_speed == SPEED_1000 && tp->link_config.active_speed == SPEED_1000 &&
(tg3_flag(tp, PCIX_MODE) || tg3_flag(tp, PCI_HIGH_SPEED))) { (tg3_flag(tp, PCIX_MODE) || tg3_flag(tp, PCI_HIGH_SPEED))) {
...@@ -5010,8 +5009,8 @@ static int tg3_setup_fiber_hw_autoneg(struct tg3 *tp, u32 mac_status) ...@@ -5010,8 +5009,8 @@ static int tg3_setup_fiber_hw_autoneg(struct tg3 *tp, u32 mac_status)
port_a = 1; port_a = 1;
current_link_up = 0; current_link_up = 0;
if (tp->pci_chip_rev_id != CHIPREV_ID_5704_A0 && if (tg3_chip_rev_id(tp) != CHIPREV_ID_5704_A0 &&
tp->pci_chip_rev_id != CHIPREV_ID_5704_A1) { tg3_chip_rev_id(tp) != CHIPREV_ID_5704_A1) {
workaround = 1; workaround = 1;
if (tr32(TG3PCI_DUAL_MAC_CTRL) & DUAL_MAC_CTRL_ID) if (tr32(TG3PCI_DUAL_MAC_CTRL) & DUAL_MAC_CTRL_ID)
port_a = 0; port_a = 0;
...@@ -5340,7 +5339,7 @@ static int tg3_setup_fiber_mii_phy(struct tg3 *tp, int force_reset) ...@@ -5340,7 +5339,7 @@ static int tg3_setup_fiber_mii_phy(struct tg3 *tp, int force_reset)
err |= tg3_readphy(tp, MII_BMSR, &bmsr); err |= tg3_readphy(tp, MII_BMSR, &bmsr);
err |= tg3_readphy(tp, MII_BMSR, &bmsr); err |= tg3_readphy(tp, MII_BMSR, &bmsr);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714) { if (tg3_asic_rev(tp) == ASIC_REV_5714) {
if (tr32(MAC_TX_STATUS) & TX_STATUS_LINK_UP) if (tr32(MAC_TX_STATUS) & TX_STATUS_LINK_UP)
bmsr |= BMSR_LSTATUS; bmsr |= BMSR_LSTATUS;
else else
...@@ -5409,8 +5408,7 @@ static int tg3_setup_fiber_mii_phy(struct tg3 *tp, int force_reset) ...@@ -5409,8 +5408,7 @@ static int tg3_setup_fiber_mii_phy(struct tg3 *tp, int force_reset)
bmcr = new_bmcr; bmcr = new_bmcr;
err |= tg3_readphy(tp, MII_BMSR, &bmsr); err |= tg3_readphy(tp, MII_BMSR, &bmsr);
err |= tg3_readphy(tp, MII_BMSR, &bmsr); err |= tg3_readphy(tp, MII_BMSR, &bmsr);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == if (tg3_asic_rev(tp) == ASIC_REV_5714) {
ASIC_REV_5714) {
if (tr32(MAC_TX_STATUS) & TX_STATUS_LINK_UP) if (tr32(MAC_TX_STATUS) & TX_STATUS_LINK_UP)
bmsr |= BMSR_LSTATUS; bmsr |= BMSR_LSTATUS;
else else
...@@ -5545,7 +5543,7 @@ static int tg3_setup_phy(struct tg3 *tp, int force_reset) ...@@ -5545,7 +5543,7 @@ static int tg3_setup_phy(struct tg3 *tp, int force_reset)
else else
err = tg3_setup_copper_phy(tp, force_reset); err = tg3_setup_copper_phy(tp, force_reset);
if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5784_AX) { if (tg3_chip_rev(tp) == CHIPREV_5784_AX) {
u32 scale; u32 scale;
val = tr32(TG3_CPMU_CLCK_STAT) & CPMU_CLCK_STAT_MAC_CLCK_MASK; val = tr32(TG3_CPMU_CLCK_STAT) & CPMU_CLCK_STAT_MAC_CLCK_MASK;
...@@ -5563,8 +5561,8 @@ static int tg3_setup_phy(struct tg3 *tp, int force_reset) ...@@ -5563,8 +5561,8 @@ static int tg3_setup_phy(struct tg3 *tp, int force_reset)
val = (2 << TX_LENGTHS_IPG_CRS_SHIFT) | val = (2 << TX_LENGTHS_IPG_CRS_SHIFT) |
(6 << TX_LENGTHS_IPG_SHIFT); (6 << TX_LENGTHS_IPG_SHIFT);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 || if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) tg3_asic_rev(tp) == ASIC_REV_5762)
val |= tr32(MAC_TX_LENGTHS) & val |= tr32(MAC_TX_LENGTHS) &
(TX_LENGTHS_JMB_FRM_LEN_MSK | (TX_LENGTHS_JMB_FRM_LEN_MSK |
TX_LENGTHS_CNT_DWN_VAL_MSK); TX_LENGTHS_CNT_DWN_VAL_MSK);
...@@ -7188,7 +7186,7 @@ static int tigon3_dma_hwbug_workaround(struct tg3_napi *tnapi, ...@@ -7188,7 +7186,7 @@ static int tigon3_dma_hwbug_workaround(struct tg3_napi *tnapi,
dma_addr_t new_addr = 0; dma_addr_t new_addr = 0;
int ret = 0; int ret = 0;
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701) if (tg3_asic_rev(tp) != ASIC_REV_5701)
new_skb = skb_copy(skb, GFP_ATOMIC); new_skb = skb_copy(skb, GFP_ATOMIC);
else { else {
int more_headroom = 4 - ((unsigned long)skb->data & 3); int more_headroom = 4 - ((unsigned long)skb->data & 3);
...@@ -7362,7 +7360,7 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -7362,7 +7360,7 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb, struct net_device *dev)
} else if (tg3_flag(tp, HW_TSO_2)) } else if (tg3_flag(tp, HW_TSO_2))
mss |= hdr_len << 9; mss |= hdr_len << 9;
else if (tg3_flag(tp, HW_TSO_1) || else if (tg3_flag(tp, HW_TSO_1) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { tg3_asic_rev(tp) == ASIC_REV_5705) {
if (tcp_opt_len || iph->ihl > 5) { if (tcp_opt_len || iph->ihl > 5) {
int tsflags; int tsflags;
...@@ -7518,7 +7516,7 @@ static void tg3_mac_loopback(struct tg3 *tp, bool enable) ...@@ -7518,7 +7516,7 @@ static void tg3_mac_loopback(struct tg3 *tp, bool enable)
if (tg3_flag(tp, 5705_PLUS) || if (tg3_flag(tp, 5705_PLUS) ||
(tp->phy_flags & TG3_PHYFLG_PHY_SERDES) || (tp->phy_flags & TG3_PHYFLG_PHY_SERDES) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700) tg3_asic_rev(tp) == ASIC_REV_5700)
tp->mac_mode &= ~MAC_MODE_LINK_POLARITY; tp->mac_mode &= ~MAC_MODE_LINK_POLARITY;
} }
...@@ -7577,7 +7575,7 @@ static int tg3_phy_lpbk_set(struct tg3 *tp, u32 speed, bool extlpbk) ...@@ -7577,7 +7575,7 @@ static int tg3_phy_lpbk_set(struct tg3 *tp, u32 speed, bool extlpbk)
udelay(40); udelay(40);
if ((tp->phy_flags & TG3_PHYFLG_IS_FET) && if ((tp->phy_flags & TG3_PHYFLG_IS_FET) &&
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785) { tg3_asic_rev(tp) == ASIC_REV_5785) {
tg3_writephy(tp, MII_TG3_FET_PTEST, ptest | tg3_writephy(tp, MII_TG3_FET_PTEST, ptest |
MII_TG3_FET_PTEST_FRC_TX_LINK | MII_TG3_FET_PTEST_FRC_TX_LINK |
MII_TG3_FET_PTEST_FRC_TX_LOCK); MII_TG3_FET_PTEST_FRC_TX_LOCK);
...@@ -7601,7 +7599,7 @@ static int tg3_phy_lpbk_set(struct tg3 *tp, u32 speed, bool extlpbk) ...@@ -7601,7 +7599,7 @@ static int tg3_phy_lpbk_set(struct tg3 *tp, u32 speed, bool extlpbk)
else else
mac_mode |= MAC_MODE_PORT_MODE_MII; mac_mode |= MAC_MODE_PORT_MODE_MII;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700) { if (tg3_asic_rev(tp) == ASIC_REV_5700) {
u32 masked_phy_id = tp->phy_id & TG3_PHY_ID_MASK; u32 masked_phy_id = tp->phy_id & TG3_PHY_ID_MASK;
if (masked_phy_id == TG3_PHY_ID_BCM5401) if (masked_phy_id == TG3_PHY_ID_BCM5401)
...@@ -8279,7 +8277,7 @@ static void tg3_restore_pci_state(struct tg3 *tp) ...@@ -8279,7 +8277,7 @@ static void tg3_restore_pci_state(struct tg3 *tp)
/* Set MAX PCI retry to zero. */ /* Set MAX PCI retry to zero. */
val = (PCISTATE_ROM_ENABLE | PCISTATE_ROM_RETRY_ENABLE); val = (PCISTATE_ROM_ENABLE | PCISTATE_ROM_RETRY_ENABLE);
if (tp->pci_chip_rev_id == CHIPREV_ID_5704_A0 && if (tg3_chip_rev_id(tp) == CHIPREV_ID_5704_A0 &&
tg3_flag(tp, PCIX_MODE)) tg3_flag(tp, PCIX_MODE))
val |= PCISTATE_RETRY_SAME_DMA; val |= PCISTATE_RETRY_SAME_DMA;
/* Allow reads and writes to the APE register and memory space. */ /* Allow reads and writes to the APE register and memory space. */
...@@ -8351,7 +8349,7 @@ static int tg3_chip_reset(struct tg3 *tp) ...@@ -8351,7 +8349,7 @@ static int tg3_chip_reset(struct tg3 *tp)
*/ */
tg3_save_pci_state(tp); tg3_save_pci_state(tp);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752 || if (tg3_asic_rev(tp) == ASIC_REV_5752 ||
tg3_flag(tp, 5755_PLUS)) tg3_flag(tp, 5755_PLUS))
tw32(GRC_FASTBOOT_PC, 0); tw32(GRC_FASTBOOT_PC, 0);
...@@ -8386,7 +8384,7 @@ static int tg3_chip_reset(struct tg3 *tp) ...@@ -8386,7 +8384,7 @@ static int tg3_chip_reset(struct tg3 *tp)
for (i = 0; i < tp->irq_cnt; i++) for (i = 0; i < tp->irq_cnt; i++)
synchronize_irq(tp->napi[i].irq_vec); synchronize_irq(tp->napi[i].irq_vec);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780) { if (tg3_asic_rev(tp) == ASIC_REV_57780) {
val = tr32(TG3_PCIE_LNKCTL) & ~TG3_PCIE_LNKCTL_L1_PLL_PD_EN; val = tr32(TG3_PCIE_LNKCTL) & ~TG3_PCIE_LNKCTL_L1_PLL_PD_EN;
tw32(TG3_PCIE_LNKCTL, val | TG3_PCIE_LNKCTL_L1_PLL_PD_DIS); tw32(TG3_PCIE_LNKCTL, val | TG3_PCIE_LNKCTL_L1_PLL_PD_DIS);
} }
...@@ -8396,19 +8394,19 @@ static int tg3_chip_reset(struct tg3 *tp) ...@@ -8396,19 +8394,19 @@ static int tg3_chip_reset(struct tg3 *tp)
if (tg3_flag(tp, PCI_EXPRESS)) { if (tg3_flag(tp, PCI_EXPRESS)) {
/* Force PCIe 1.0a mode */ /* Force PCIe 1.0a mode */
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5785 && if (tg3_asic_rev(tp) != ASIC_REV_5785 &&
!tg3_flag(tp, 57765_PLUS) && !tg3_flag(tp, 57765_PLUS) &&
tr32(TG3_PCIE_PHY_TSTCTL) == tr32(TG3_PCIE_PHY_TSTCTL) ==
(TG3_PCIE_PHY_TSTCTL_PCIE10 | TG3_PCIE_PHY_TSTCTL_PSCRAM)) (TG3_PCIE_PHY_TSTCTL_PCIE10 | TG3_PCIE_PHY_TSTCTL_PSCRAM))
tw32(TG3_PCIE_PHY_TSTCTL, TG3_PCIE_PHY_TSTCTL_PSCRAM); tw32(TG3_PCIE_PHY_TSTCTL, TG3_PCIE_PHY_TSTCTL_PSCRAM);
if (tp->pci_chip_rev_id != CHIPREV_ID_5750_A0) { if (tg3_chip_rev_id(tp) != CHIPREV_ID_5750_A0) {
tw32(GRC_MISC_CFG, (1 << 29)); tw32(GRC_MISC_CFG, (1 << 29));
val |= (1 << 29); val |= (1 << 29);
} }
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { if (tg3_asic_rev(tp) == ASIC_REV_5906) {
tw32(VCPU_STATUS, tr32(VCPU_STATUS) | VCPU_STATUS_DRV_RESET); tw32(VCPU_STATUS, tr32(VCPU_STATUS) | VCPU_STATUS_DRV_RESET);
tw32(GRC_VCPU_EXT_CTRL, tw32(GRC_VCPU_EXT_CTRL,
tr32(GRC_VCPU_EXT_CTRL) & ~GRC_VCPU_EXT_CTRL_HALT_CPU); tr32(GRC_VCPU_EXT_CTRL) & ~GRC_VCPU_EXT_CTRL_HALT_CPU);
...@@ -8451,7 +8449,7 @@ static int tg3_chip_reset(struct tg3 *tp) ...@@ -8451,7 +8449,7 @@ static int tg3_chip_reset(struct tg3 *tp)
if (tg3_flag(tp, PCI_EXPRESS) && pci_is_pcie(tp->pdev)) { if (tg3_flag(tp, PCI_EXPRESS) && pci_is_pcie(tp->pdev)) {
u16 val16; u16 val16;
if (tp->pci_chip_rev_id == CHIPREV_ID_5750_A0) { if (tg3_chip_rev_id(tp) == CHIPREV_ID_5750_A0) {
int j; int j;
u32 cfg_val; u32 cfg_val;
...@@ -8492,7 +8490,7 @@ static int tg3_chip_reset(struct tg3 *tp) ...@@ -8492,7 +8490,7 @@ static int tg3_chip_reset(struct tg3 *tp)
val = tr32(MEMARB_MODE); val = tr32(MEMARB_MODE);
tw32(MEMARB_MODE, val | MEMARB_MODE_ENABLE); tw32(MEMARB_MODE, val | MEMARB_MODE_ENABLE);
if (tp->pci_chip_rev_id == CHIPREV_ID_5750_A3) { if (tg3_chip_rev_id(tp) == CHIPREV_ID_5750_A3) {
tg3_stop_fw(tp); tg3_stop_fw(tp);
tw32(0x5000, 0x400); tw32(0x5000, 0x400);
} }
...@@ -8509,16 +8507,16 @@ static int tg3_chip_reset(struct tg3 *tp) ...@@ -8509,16 +8507,16 @@ static int tg3_chip_reset(struct tg3 *tp)
tw32(GRC_MODE, tp->grc_mode); tw32(GRC_MODE, tp->grc_mode);
if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) { if (tg3_chip_rev_id(tp) == CHIPREV_ID_5705_A0) {
val = tr32(0xc4); val = tr32(0xc4);
tw32(0xc4, val | (1 << 15)); tw32(0xc4, val | (1 << 15));
} }
if ((tp->nic_sram_data_cfg & NIC_SRAM_DATA_CFG_MINI_PCI) != 0 && if ((tp->nic_sram_data_cfg & NIC_SRAM_DATA_CFG_MINI_PCI) != 0 &&
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { tg3_asic_rev(tp) == ASIC_REV_5705) {
tp->pci_clock_ctrl |= CLOCK_CTRL_CLKRUN_OENABLE; tp->pci_clock_ctrl |= CLOCK_CTRL_CLKRUN_OENABLE;
if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) if (tg3_chip_rev_id(tp) == CHIPREV_ID_5705_A0)
tp->pci_clock_ctrl |= CLOCK_CTRL_FORCE_CLKRUN; tp->pci_clock_ctrl |= CLOCK_CTRL_FORCE_CLKRUN;
tw32(TG3PCI_CLOCK_CTRL, tp->pci_clock_ctrl); tw32(TG3PCI_CLOCK_CTRL, tp->pci_clock_ctrl);
} }
...@@ -8544,15 +8542,15 @@ static int tg3_chip_reset(struct tg3 *tp) ...@@ -8544,15 +8542,15 @@ static int tg3_chip_reset(struct tg3 *tp)
tg3_mdio_start(tp); tg3_mdio_start(tp);
if (tg3_flag(tp, PCI_EXPRESS) && if (tg3_flag(tp, PCI_EXPRESS) &&
tp->pci_chip_rev_id != CHIPREV_ID_5750_A0 && tg3_chip_rev_id(tp) != CHIPREV_ID_5750_A0 &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5785 && tg3_asic_rev(tp) != ASIC_REV_5785 &&
!tg3_flag(tp, 57765_PLUS)) { !tg3_flag(tp, 57765_PLUS)) {
val = tr32(0x7c00); val = tr32(0x7c00);
tw32(0x7c00, val | (1 << 25)); tw32(0x7c00, val | (1 << 25));
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) { if (tg3_asic_rev(tp) == ASIC_REV_5720) {
val = tr32(TG3_CPMU_CLCK_ORIDE); val = tr32(TG3_CPMU_CLCK_ORIDE);
tw32(TG3_CPMU_CLCK_ORIDE, val & ~CPMU_CLCK_ORIDE_MAC_ORIDE_EN); tw32(TG3_CPMU_CLCK_ORIDE, val & ~CPMU_CLCK_ORIDE_MAC_ORIDE_EN);
} }
...@@ -8764,7 +8762,7 @@ static void tg3_rings_reset(struct tg3 *tp) ...@@ -8764,7 +8762,7 @@ static void tg3_rings_reset(struct tg3 *tp)
else if (tg3_flag(tp, 5717_PLUS)) else if (tg3_flag(tp, 5717_PLUS))
limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 4; limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 4;
else if (tg3_flag(tp, 57765_CLASS) || else if (tg3_flag(tp, 57765_CLASS) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) tg3_asic_rev(tp) == ASIC_REV_5762)
limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 2; limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 2;
else else
limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE; limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE;
...@@ -8780,8 +8778,8 @@ static void tg3_rings_reset(struct tg3 *tp) ...@@ -8780,8 +8778,8 @@ static void tg3_rings_reset(struct tg3 *tp)
limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 17; limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 17;
else if (!tg3_flag(tp, 5705_PLUS)) else if (!tg3_flag(tp, 5705_PLUS))
limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 16; limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 16;
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || else if (tg3_asic_rev(tp) == ASIC_REV_5755 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762 || tg3_asic_rev(tp) == ASIC_REV_5762 ||
tg3_flag(tp, 57765_CLASS)) tg3_flag(tp, 57765_CLASS))
limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 4; limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 4;
else else
...@@ -8887,12 +8885,12 @@ static void tg3_setup_rxbd_thresholds(struct tg3 *tp) ...@@ -8887,12 +8885,12 @@ static void tg3_setup_rxbd_thresholds(struct tg3 *tp)
if (!tg3_flag(tp, 5750_PLUS) || if (!tg3_flag(tp, 5750_PLUS) ||
tg3_flag(tp, 5780_CLASS) || tg3_flag(tp, 5780_CLASS) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 || tg3_asic_rev(tp) == ASIC_REV_5750 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752 || tg3_asic_rev(tp) == ASIC_REV_5752 ||
tg3_flag(tp, 57765_PLUS)) tg3_flag(tp, 57765_PLUS))
bdcache_maxcnt = TG3_SRAM_RX_STD_BDCACHE_SIZE_5700; bdcache_maxcnt = TG3_SRAM_RX_STD_BDCACHE_SIZE_5700;
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || else if (tg3_asic_rev(tp) == ASIC_REV_5755 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787) tg3_asic_rev(tp) == ASIC_REV_5787)
bdcache_maxcnt = TG3_SRAM_RX_STD_BDCACHE_SIZE_5755; bdcache_maxcnt = TG3_SRAM_RX_STD_BDCACHE_SIZE_5755;
else else
bdcache_maxcnt = TG3_SRAM_RX_STD_BDCACHE_SIZE_5906; bdcache_maxcnt = TG3_SRAM_RX_STD_BDCACHE_SIZE_5906;
...@@ -9074,7 +9072,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9074,7 +9072,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
if (tp->phy_flags & TG3_PHYFLG_EEE_CAP) { if (tp->phy_flags & TG3_PHYFLG_EEE_CAP) {
val = TG3_CPMU_EEE_LNKIDL_PCIE_NL0 | val = TG3_CPMU_EEE_LNKIDL_PCIE_NL0 |
TG3_CPMU_EEE_LNKIDL_UART_IDL; TG3_CPMU_EEE_LNKIDL_UART_IDL;
if (tp->pci_chip_rev_id == CHIPREV_ID_57765_A0) if (tg3_chip_rev_id(tp) == CHIPREV_ID_57765_A0)
val |= TG3_CPMU_EEE_LNKIDL_APE_TX_MT; val |= TG3_CPMU_EEE_LNKIDL_APE_TX_MT;
tw32_f(TG3_CPMU_EEE_LNKIDL_CTRL, val); tw32_f(TG3_CPMU_EEE_LNKIDL_CTRL, val);
...@@ -9087,7 +9085,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9087,7 +9085,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
TG3_CPMU_EEEMD_LPI_IN_RX | TG3_CPMU_EEEMD_LPI_IN_RX |
TG3_CPMU_EEEMD_EEE_ENABLE; TG3_CPMU_EEEMD_EEE_ENABLE;
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717) if (tg3_asic_rev(tp) != ASIC_REV_5717)
val |= TG3_CPMU_EEEMD_SND_IDX_DET_EN; val |= TG3_CPMU_EEEMD_SND_IDX_DET_EN;
if (tg3_flag(tp, ENABLE_APE)) if (tg3_flag(tp, ENABLE_APE))
...@@ -9113,7 +9111,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9113,7 +9111,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tg3_write_sig_legacy(tp, RESET_KIND_INIT); tg3_write_sig_legacy(tp, RESET_KIND_INIT);
if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5784_AX) { if (tg3_chip_rev(tp) == CHIPREV_5784_AX) {
val = tr32(TG3_CPMU_CTRL); val = tr32(TG3_CPMU_CTRL);
val &= ~(CPMU_CTRL_LINK_AWARE_MODE | CPMU_CTRL_LINK_IDLE_MODE); val &= ~(CPMU_CTRL_LINK_AWARE_MODE | CPMU_CTRL_LINK_IDLE_MODE);
tw32(TG3_CPMU_CTRL, val); tw32(TG3_CPMU_CTRL, val);
...@@ -9134,7 +9132,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9134,7 +9132,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tw32(TG3_CPMU_HST_ACC, val); tw32(TG3_CPMU_HST_ACC, val);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780) { if (tg3_asic_rev(tp) == ASIC_REV_57780) {
val = tr32(PCIE_PWR_MGMT_THRESH) & ~PCIE_PWR_MGMT_L1_THRESH_MSK; val = tr32(PCIE_PWR_MGMT_THRESH) & ~PCIE_PWR_MGMT_L1_THRESH_MSK;
val |= PCIE_PWR_MGMT_EXT_ASPM_TMR_EN | val |= PCIE_PWR_MGMT_EXT_ASPM_TMR_EN |
PCIE_PWR_MGMT_L1_THRESH_4MS; PCIE_PWR_MGMT_L1_THRESH_4MS;
...@@ -9164,7 +9162,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9164,7 +9162,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
} }
if (tg3_flag(tp, 57765_CLASS)) { if (tg3_flag(tp, 57765_CLASS)) {
if (tp->pci_chip_rev_id == CHIPREV_ID_57765_A0) { if (tg3_chip_rev_id(tp) == CHIPREV_ID_57765_A0) {
u32 grc_mode = tr32(GRC_MODE); u32 grc_mode = tr32(GRC_MODE);
/* Access the lower 1K of PL PCIE block registers. */ /* Access the lower 1K of PL PCIE block registers. */
...@@ -9179,7 +9177,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9179,7 +9177,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tw32(GRC_MODE, grc_mode); tw32(GRC_MODE, grc_mode);
} }
if (GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_57765_AX) { if (tg3_chip_rev(tp) != CHIPREV_57765_AX) {
u32 grc_mode; u32 grc_mode;
/* Fix transmit hangs */ /* Fix transmit hangs */
...@@ -9219,7 +9217,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9219,7 +9217,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tw32_f(TG3PCI_CLOCK_CTRL, tp->pci_clock_ctrl); tw32_f(TG3PCI_CLOCK_CTRL, tp->pci_clock_ctrl);
} }
if (tp->pci_chip_rev_id == CHIPREV_ID_5704_A0 && if (tg3_chip_rev_id(tp) == CHIPREV_ID_5704_A0 &&
tg3_flag(tp, PCIX_MODE)) { tg3_flag(tp, PCIX_MODE)) {
val = tr32(TG3PCI_PCISTATE); val = tr32(TG3PCI_PCISTATE);
val |= PCISTATE_RETRY_SAME_DMA; val |= PCISTATE_RETRY_SAME_DMA;
...@@ -9237,7 +9235,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9237,7 +9235,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tw32(TG3PCI_PCISTATE, val); tw32(TG3PCI_PCISTATE, val);
} }
if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5704_BX) { if (tg3_chip_rev(tp) == CHIPREV_5704_BX) {
/* Enable some hw fixes. */ /* Enable some hw fixes. */
val = tr32(TG3PCI_MSI_DATA); val = tr32(TG3PCI_MSI_DATA);
val |= (1 << 26) | (1 << 28) | (1 << 29); val |= (1 << 26) | (1 << 28) | (1 << 29);
...@@ -9256,15 +9254,15 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9256,15 +9254,15 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
if (tg3_flag(tp, 57765_PLUS)) { if (tg3_flag(tp, 57765_PLUS)) {
val = tr32(TG3PCI_DMA_RW_CTRL) & val = tr32(TG3PCI_DMA_RW_CTRL) &
~DMA_RWCTRL_DIS_CACHE_ALIGNMENT; ~DMA_RWCTRL_DIS_CACHE_ALIGNMENT;
if (tp->pci_chip_rev_id == CHIPREV_ID_57765_A0) if (tg3_chip_rev_id(tp) == CHIPREV_ID_57765_A0)
val &= ~DMA_RWCTRL_CRDRDR_RDMA_MRRS_MSK; val &= ~DMA_RWCTRL_CRDRDR_RDMA_MRRS_MSK;
if (!tg3_flag(tp, 57765_CLASS) && if (!tg3_flag(tp, 57765_CLASS) &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717 && tg3_asic_rev(tp) != ASIC_REV_5717 &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5762) tg3_asic_rev(tp) != ASIC_REV_5762)
val |= DMA_RWCTRL_TAGGED_STAT_WA; val |= DMA_RWCTRL_TAGGED_STAT_WA;
tw32(TG3PCI_DMA_RW_CTRL, val | tp->dma_rwctrl); tw32(TG3PCI_DMA_RW_CTRL, val | tp->dma_rwctrl);
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5784 && } else if (tg3_asic_rev(tp) != ASIC_REV_5784 &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5761) { tg3_asic_rev(tp) != ASIC_REV_5761) {
/* This value is determined during the probe time DMA /* This value is determined during the probe time DMA
* engine test, tg3_test_dma. * engine test, tg3_test_dma.
*/ */
...@@ -9304,9 +9302,9 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9304,9 +9302,9 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
/* Initialize MBUF/DESC pool. */ /* Initialize MBUF/DESC pool. */
if (tg3_flag(tp, 5750_PLUS)) { if (tg3_flag(tp, 5750_PLUS)) {
/* Do nothing. */ /* Do nothing. */
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5705) { } else if (tg3_asic_rev(tp) != ASIC_REV_5705) {
tw32(BUFMGR_MB_POOL_ADDR, NIC_SRAM_MBUF_POOL_BASE); tw32(BUFMGR_MB_POOL_ADDR, NIC_SRAM_MBUF_POOL_BASE);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) if (tg3_asic_rev(tp) == ASIC_REV_5704)
tw32(BUFMGR_MB_POOL_SIZE, NIC_SRAM_MBUF_POOL_SIZE64); tw32(BUFMGR_MB_POOL_SIZE, NIC_SRAM_MBUF_POOL_SIZE64);
else else
tw32(BUFMGR_MB_POOL_SIZE, NIC_SRAM_MBUF_POOL_SIZE96); tw32(BUFMGR_MB_POOL_SIZE, NIC_SRAM_MBUF_POOL_SIZE96);
...@@ -9344,11 +9342,11 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9344,11 +9342,11 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tp->bufmgr_config.dma_high_water); tp->bufmgr_config.dma_high_water);
val = BUFMGR_MODE_ENABLE | BUFMGR_MODE_ATTN_ENABLE; val = BUFMGR_MODE_ENABLE | BUFMGR_MODE_ATTN_ENABLE;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) if (tg3_asic_rev(tp) == ASIC_REV_5719)
val |= BUFMGR_MODE_NO_TX_UNDERRUN; val |= BUFMGR_MODE_NO_TX_UNDERRUN;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
tp->pci_chip_rev_id == CHIPREV_ID_5719_A0 || tg3_chip_rev_id(tp) == CHIPREV_ID_5719_A0 ||
tp->pci_chip_rev_id == CHIPREV_ID_5720_A0) tg3_chip_rev_id(tp) == CHIPREV_ID_5720_A0)
val |= BUFMGR_MODE_MBLOW_ATTN_ENAB; val |= BUFMGR_MODE_MBLOW_ATTN_ENAB;
tw32(BUFMGR_MODE, val); tw32(BUFMGR_MODE, val);
for (i = 0; i < 2000; i++) { for (i = 0; i < 2000; i++) {
...@@ -9361,7 +9359,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9361,7 +9359,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
return -ENODEV; return -ENODEV;
} }
if (tp->pci_chip_rev_id == CHIPREV_ID_5906_A1) if (tg3_chip_rev_id(tp) == CHIPREV_ID_5906_A1)
tw32(ISO_PKT_TX, (tr32(ISO_PKT_TX) & ~0x3) | 0x2); tw32(ISO_PKT_TX, (tr32(ISO_PKT_TX) & ~0x3) | 0x2);
tg3_setup_rxbd_thresholds(tp); tg3_setup_rxbd_thresholds(tp);
...@@ -9399,7 +9397,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9399,7 +9397,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
/* Program the jumbo buffer descriptor ring control /* Program the jumbo buffer descriptor ring control
* blocks on those devices that have them. * blocks on those devices that have them.
*/ */
if (tp->pci_chip_rev_id == CHIPREV_ID_5719_A0 || if (tg3_chip_rev_id(tp) == CHIPREV_ID_5719_A0 ||
(tg3_flag(tp, JUMBO_CAPABLE) && !tg3_flag(tp, 5780_CLASS))) { (tg3_flag(tp, JUMBO_CAPABLE) && !tg3_flag(tp, 5780_CLASS))) {
if (tg3_flag(tp, JUMBO_RING_ENABLE)) { if (tg3_flag(tp, JUMBO_RING_ENABLE)) {
...@@ -9413,7 +9411,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9413,7 +9411,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
val | BDINFO_FLAGS_USE_EXT_RECV); val | BDINFO_FLAGS_USE_EXT_RECV);
if (!tg3_flag(tp, USE_JUMBO_BDFLAG) || if (!tg3_flag(tp, USE_JUMBO_BDFLAG) ||
tg3_flag(tp, 57765_CLASS) || tg3_flag(tp, 57765_CLASS) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) tg3_asic_rev(tp) == ASIC_REV_5762)
tw32(RCVDBDI_JUMBO_BD + TG3_BDINFO_NIC_ADDR, tw32(RCVDBDI_JUMBO_BD + TG3_BDINFO_NIC_ADDR,
NIC_SRAM_RX_JUMBO_BUFFER_DESC); NIC_SRAM_RX_JUMBO_BUFFER_DESC);
} else { } else {
...@@ -9455,8 +9453,8 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9455,8 +9453,8 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
(6 << TX_LENGTHS_IPG_SHIFT) | (6 << TX_LENGTHS_IPG_SHIFT) |
(32 << TX_LENGTHS_SLOT_TIME_SHIFT); (32 << TX_LENGTHS_SLOT_TIME_SHIFT);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 || if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) tg3_asic_rev(tp) == ASIC_REV_5762)
val |= tr32(MAC_TX_LENGTHS) & val |= tr32(MAC_TX_LENGTHS) &
(TX_LENGTHS_JMB_FRM_LEN_MSK | (TX_LENGTHS_JMB_FRM_LEN_MSK |
TX_LENGTHS_CNT_DWN_VAL_MSK); TX_LENGTHS_CNT_DWN_VAL_MSK);
...@@ -9476,20 +9474,20 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9476,20 +9474,20 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
RDMAC_MODE_FIFOURUN_ENAB | RDMAC_MODE_FIFOOREAD_ENAB | RDMAC_MODE_FIFOURUN_ENAB | RDMAC_MODE_FIFOOREAD_ENAB |
RDMAC_MODE_LNGREAD_ENAB); RDMAC_MODE_LNGREAD_ENAB);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717) if (tg3_asic_rev(tp) == ASIC_REV_5717)
rdmac_mode |= RDMAC_MODE_MULT_DMA_RD_DIS; rdmac_mode |= RDMAC_MODE_MULT_DMA_RD_DIS;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 || if (tg3_asic_rev(tp) == ASIC_REV_5784 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 || tg3_asic_rev(tp) == ASIC_REV_5785 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780) tg3_asic_rev(tp) == ASIC_REV_57780)
rdmac_mode |= RDMAC_MODE_BD_SBD_CRPT_ENAB | rdmac_mode |= RDMAC_MODE_BD_SBD_CRPT_ENAB |
RDMAC_MODE_MBUF_RBD_CRPT_ENAB | RDMAC_MODE_MBUF_RBD_CRPT_ENAB |
RDMAC_MODE_MBUF_SBD_CRPT_ENAB; RDMAC_MODE_MBUF_SBD_CRPT_ENAB;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 && if (tg3_asic_rev(tp) == ASIC_REV_5705 &&
tp->pci_chip_rev_id != CHIPREV_ID_5705_A0) { tg3_chip_rev_id(tp) != CHIPREV_ID_5705_A0) {
if (tg3_flag(tp, TSO_CAPABLE) && if (tg3_flag(tp, TSO_CAPABLE) &&
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { tg3_asic_rev(tp) == ASIC_REV_5705) {
rdmac_mode |= RDMAC_MODE_FIFO_SIZE_128; rdmac_mode |= RDMAC_MODE_FIFO_SIZE_128;
} else if (!(tr32(TG3PCI_PCISTATE) & PCISTATE_BUS_SPEED_HIGH) && } else if (!(tr32(TG3PCI_PCISTATE) & PCISTATE_BUS_SPEED_HIGH) &&
!tg3_flag(tp, IS_5788)) { !tg3_flag(tp, IS_5788)) {
...@@ -9500,7 +9498,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9500,7 +9498,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
if (tg3_flag(tp, PCI_EXPRESS)) if (tg3_flag(tp, PCI_EXPRESS))
rdmac_mode |= RDMAC_MODE_FIFO_LONG_BURST; rdmac_mode |= RDMAC_MODE_FIFO_LONG_BURST;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57766) { if (tg3_asic_rev(tp) == ASIC_REV_57766) {
tp->dma_limit = 0; tp->dma_limit = 0;
if (tp->dev->mtu <= ETH_DATA_LEN) { if (tp->dev->mtu <= ETH_DATA_LEN) {
rdmac_mode |= RDMAC_MODE_JMB_2K_MMRR; rdmac_mode |= RDMAC_MODE_JMB_2K_MMRR;
...@@ -9514,29 +9512,29 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9514,29 +9512,29 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
rdmac_mode |= RDMAC_MODE_IPV4_LSO_EN; rdmac_mode |= RDMAC_MODE_IPV4_LSO_EN;
if (tg3_flag(tp, 57765_PLUS) || if (tg3_flag(tp, 57765_PLUS) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 || tg3_asic_rev(tp) == ASIC_REV_5785 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780) tg3_asic_rev(tp) == ASIC_REV_57780)
rdmac_mode |= RDMAC_MODE_IPV6_LSO_EN; rdmac_mode |= RDMAC_MODE_IPV6_LSO_EN;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 || if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) tg3_asic_rev(tp) == ASIC_REV_5762)
rdmac_mode |= tr32(RDMAC_MODE) & RDMAC_MODE_H2BNC_VLAN_DET; rdmac_mode |= tr32(RDMAC_MODE) & RDMAC_MODE_H2BNC_VLAN_DET;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761 || if (tg3_asic_rev(tp) == ASIC_REV_5761 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 || tg3_asic_rev(tp) == ASIC_REV_5784 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 || tg3_asic_rev(tp) == ASIC_REV_5785 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 || tg3_asic_rev(tp) == ASIC_REV_57780 ||
tg3_flag(tp, 57765_PLUS)) { tg3_flag(tp, 57765_PLUS)) {
u32 tgtreg; u32 tgtreg;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) if (tg3_asic_rev(tp) == ASIC_REV_5762)
tgtreg = TG3_RDMA_RSRVCTRL_REG2; tgtreg = TG3_RDMA_RSRVCTRL_REG2;
else else
tgtreg = TG3_RDMA_RSRVCTRL_REG; tgtreg = TG3_RDMA_RSRVCTRL_REG;
val = tr32(tgtreg); val = tr32(tgtreg);
if (tp->pci_chip_rev_id == CHIPREV_ID_5719_A0 || if (tg3_chip_rev_id(tp) == CHIPREV_ID_5719_A0 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) { tg3_asic_rev(tp) == ASIC_REV_5762) {
val &= ~(TG3_RDMA_RSRVCTRL_TXMRGN_MASK | val &= ~(TG3_RDMA_RSRVCTRL_TXMRGN_MASK |
TG3_RDMA_RSRVCTRL_FIFO_LWM_MASK | TG3_RDMA_RSRVCTRL_FIFO_LWM_MASK |
TG3_RDMA_RSRVCTRL_FIFO_HWM_MASK); TG3_RDMA_RSRVCTRL_FIFO_HWM_MASK);
...@@ -9547,12 +9545,12 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9547,12 +9545,12 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tw32(tgtreg, val | TG3_RDMA_RSRVCTRL_FIFO_OFLW_FIX); tw32(tgtreg, val | TG3_RDMA_RSRVCTRL_FIFO_OFLW_FIX);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || if (tg3_asic_rev(tp) == ASIC_REV_5719 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 || tg3_asic_rev(tp) == ASIC_REV_5720 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) { tg3_asic_rev(tp) == ASIC_REV_5762) {
u32 tgtreg; u32 tgtreg;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) if (tg3_asic_rev(tp) == ASIC_REV_5762)
tgtreg = TG3_LSO_RD_DMA_CRPTEN_CTRL2; tgtreg = TG3_LSO_RD_DMA_CRPTEN_CTRL2;
else else
tgtreg = TG3_LSO_RD_DMA_CRPTEN_CTRL; tgtreg = TG3_LSO_RD_DMA_CRPTEN_CTRL;
...@@ -9635,7 +9633,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9635,7 +9633,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tp->mac_mode |= MAC_MODE_APE_TX_EN | MAC_MODE_APE_RX_EN; tp->mac_mode |= MAC_MODE_APE_TX_EN | MAC_MODE_APE_RX_EN;
if (!tg3_flag(tp, 5705_PLUS) && if (!tg3_flag(tp, 5705_PLUS) &&
!(tp->phy_flags & TG3_PHYFLG_PHY_SERDES) && !(tp->phy_flags & TG3_PHYFLG_PHY_SERDES) &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700) tg3_asic_rev(tp) != ASIC_REV_5700)
tp->mac_mode |= MAC_MODE_LINK_POLARITY; tp->mac_mode |= MAC_MODE_LINK_POLARITY;
tw32_f(MAC_MODE, tp->mac_mode | MAC_MODE_RXSTAT_CLEAR | MAC_MODE_TXSTAT_CLEAR); tw32_f(MAC_MODE, tp->mac_mode | MAC_MODE_RXSTAT_CLEAR | MAC_MODE_TXSTAT_CLEAR);
udelay(40); udelay(40);
...@@ -9653,11 +9651,11 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9653,11 +9651,11 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
GRC_LCLCTRL_GPIO_OE2 | GRC_LCLCTRL_GPIO_OUTPUT0 | GRC_LCLCTRL_GPIO_OE2 | GRC_LCLCTRL_GPIO_OUTPUT0 |
GRC_LCLCTRL_GPIO_OUTPUT1 | GRC_LCLCTRL_GPIO_OUTPUT2; GRC_LCLCTRL_GPIO_OUTPUT1 | GRC_LCLCTRL_GPIO_OUTPUT2;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752) if (tg3_asic_rev(tp) == ASIC_REV_5752)
gpio_mask |= GRC_LCLCTRL_GPIO_OE3 | gpio_mask |= GRC_LCLCTRL_GPIO_OE3 |
GRC_LCLCTRL_GPIO_OUTPUT3; GRC_LCLCTRL_GPIO_OUTPUT3;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755) if (tg3_asic_rev(tp) == ASIC_REV_5755)
gpio_mask |= GRC_LCLCTRL_GPIO_UART_SEL; gpio_mask |= GRC_LCLCTRL_GPIO_UART_SEL;
tp->grc_local_ctrl &= ~gpio_mask; tp->grc_local_ctrl &= ~gpio_mask;
...@@ -9692,11 +9690,11 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9692,11 +9690,11 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
WDMAC_MODE_FIFOURUN_ENAB | WDMAC_MODE_FIFOOREAD_ENAB | WDMAC_MODE_FIFOURUN_ENAB | WDMAC_MODE_FIFOOREAD_ENAB |
WDMAC_MODE_LNGREAD_ENAB); WDMAC_MODE_LNGREAD_ENAB);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 && if (tg3_asic_rev(tp) == ASIC_REV_5705 &&
tp->pci_chip_rev_id != CHIPREV_ID_5705_A0) { tg3_chip_rev_id(tp) != CHIPREV_ID_5705_A0) {
if (tg3_flag(tp, TSO_CAPABLE) && if (tg3_flag(tp, TSO_CAPABLE) &&
(tp->pci_chip_rev_id == CHIPREV_ID_5705_A1 || (tg3_chip_rev_id(tp) == CHIPREV_ID_5705_A1 ||
tp->pci_chip_rev_id == CHIPREV_ID_5705_A2)) { tg3_chip_rev_id(tp) == CHIPREV_ID_5705_A2)) {
/* nothing */ /* nothing */
} else if (!(tr32(TG3PCI_PCISTATE) & PCISTATE_BUS_SPEED_HIGH) && } else if (!(tr32(TG3PCI_PCISTATE) & PCISTATE_BUS_SPEED_HIGH) &&
!tg3_flag(tp, IS_5788)) { !tg3_flag(tp, IS_5788)) {
...@@ -9708,7 +9706,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9708,7 +9706,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
if (tg3_flag(tp, 5755_PLUS)) if (tg3_flag(tp, 5755_PLUS))
val |= WDMAC_MODE_STATUS_TAG_FIX; val |= WDMAC_MODE_STATUS_TAG_FIX;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785) if (tg3_asic_rev(tp) == ASIC_REV_5785)
val |= WDMAC_MODE_BURST_ALL_DATA; val |= WDMAC_MODE_BURST_ALL_DATA;
tw32_f(WDMAC_MODE, val); tw32_f(WDMAC_MODE, val);
...@@ -9719,10 +9717,10 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9719,10 +9717,10 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
pci_read_config_word(tp->pdev, tp->pcix_cap + PCI_X_CMD, pci_read_config_word(tp->pdev, tp->pcix_cap + PCI_X_CMD,
&pcix_cmd); &pcix_cmd);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703) { if (tg3_asic_rev(tp) == ASIC_REV_5703) {
pcix_cmd &= ~PCI_X_CMD_MAX_READ; pcix_cmd &= ~PCI_X_CMD_MAX_READ;
pcix_cmd |= PCI_X_CMD_READ_2K; pcix_cmd |= PCI_X_CMD_READ_2K;
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) { } else if (tg3_asic_rev(tp) == ASIC_REV_5704) {
pcix_cmd &= ~(PCI_X_CMD_MAX_SPLIT | PCI_X_CMD_MAX_READ); pcix_cmd &= ~(PCI_X_CMD_MAX_SPLIT | PCI_X_CMD_MAX_READ);
pcix_cmd |= PCI_X_CMD_READ_2K; pcix_cmd |= PCI_X_CMD_READ_2K;
} }
...@@ -9733,7 +9731,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9733,7 +9731,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tw32_f(RDMAC_MODE, rdmac_mode); tw32_f(RDMAC_MODE, rdmac_mode);
udelay(40); udelay(40);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) { if (tg3_asic_rev(tp) == ASIC_REV_5719) {
for (i = 0; i < TG3_NUM_RDMA_CHANNELS; i++) { for (i = 0; i < TG3_NUM_RDMA_CHANNELS; i++) {
if (tr32(TG3_RDMA_LENGTH + (i << 2)) > TG3_MAX_MTU(tp)) if (tr32(TG3_RDMA_LENGTH + (i << 2)) > TG3_MAX_MTU(tp))
break; break;
...@@ -9750,7 +9748,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9750,7 +9748,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
if (!tg3_flag(tp, 5705_PLUS)) if (!tg3_flag(tp, 5705_PLUS))
tw32(MBFREE_MODE, MBFREE_MODE_ENABLE); tw32(MBFREE_MODE, MBFREE_MODE_ENABLE);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761) if (tg3_asic_rev(tp) == ASIC_REV_5761)
tw32(SNDDATAC_MODE, tw32(SNDDATAC_MODE,
SNDDATAC_MODE_ENABLE | SNDDATAC_MODE_CDELAY); SNDDATAC_MODE_ENABLE | SNDDATAC_MODE_CDELAY);
else else
...@@ -9773,7 +9771,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9773,7 +9771,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tw32(SNDBDI_MODE, val); tw32(SNDBDI_MODE, val);
tw32(SNDBDS_MODE, SNDBDS_MODE_ENABLE | SNDBDS_MODE_ATTN_ENABLE); tw32(SNDBDS_MODE, SNDBDS_MODE_ENABLE | SNDBDS_MODE_ATTN_ENABLE);
if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0) { if (tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0) {
err = tg3_load_5701_a0_firmware_fix(tp); err = tg3_load_5701_a0_firmware_fix(tp);
if (err) if (err)
return err; return err;
...@@ -9788,11 +9786,11 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9788,11 +9786,11 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tp->tx_mode = TX_MODE_ENABLE; tp->tx_mode = TX_MODE_ENABLE;
if (tg3_flag(tp, 5755_PLUS) || if (tg3_flag(tp, 5755_PLUS) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) tg3_asic_rev(tp) == ASIC_REV_5906)
tp->tx_mode |= TX_MODE_MBUF_LOCKUP_FIX; tp->tx_mode |= TX_MODE_MBUF_LOCKUP_FIX;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 || if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) { tg3_asic_rev(tp) == ASIC_REV_5762) {
val = TX_MODE_JMB_FRM_LEN | TX_MODE_CNT_DN_MODE; val = TX_MODE_JMB_FRM_LEN | TX_MODE_CNT_DN_MODE;
tp->tx_mode &= ~val; tp->tx_mode &= ~val;
tp->tx_mode |= tr32(MAC_TX_MODE) & val; tp->tx_mode |= tr32(MAC_TX_MODE) & val;
...@@ -9843,8 +9841,8 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9843,8 +9841,8 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
udelay(10); udelay(10);
if (tp->phy_flags & TG3_PHYFLG_PHY_SERDES) { if (tp->phy_flags & TG3_PHYFLG_PHY_SERDES) {
if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) && if ((tg3_asic_rev(tp) == ASIC_REV_5704) &&
!(tp->phy_flags & TG3_PHYFLG_SERDES_PREEMPHASIS)) { !(tp->phy_flags & TG3_PHYFLG_SERDES_PREEMPHASIS)) {
/* Set drive transmission level to 1.2V */ /* Set drive transmission level to 1.2V */
/* only if the signal pre-emphasis bit is not set */ /* only if the signal pre-emphasis bit is not set */
val = tr32(MAC_SERDES_CFG); val = tr32(MAC_SERDES_CFG);
...@@ -9852,7 +9850,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9852,7 +9850,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
val |= 0x880; val |= 0x880;
tw32(MAC_SERDES_CFG, val); tw32(MAC_SERDES_CFG, val);
} }
if (tp->pci_chip_rev_id == CHIPREV_ID_5703_A1) if (tg3_chip_rev_id(tp) == CHIPREV_ID_5703_A1)
tw32(MAC_SERDES_CFG, 0x616000); tw32(MAC_SERDES_CFG, 0x616000);
} }
...@@ -9865,14 +9863,14 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) ...@@ -9865,14 +9863,14 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
val = 2; val = 2;
tw32_f(MAC_LOW_WMARK_MAX_RX_FRAME, val); tw32_f(MAC_LOW_WMARK_MAX_RX_FRAME, val);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 && if (tg3_asic_rev(tp) == ASIC_REV_5704 &&
(tp->phy_flags & TG3_PHYFLG_PHY_SERDES)) { (tp->phy_flags & TG3_PHYFLG_PHY_SERDES)) {
/* Use hardware link auto-negotiation */ /* Use hardware link auto-negotiation */
tg3_flag_set(tp, HW_AUTONEG); tg3_flag_set(tp, HW_AUTONEG);
} }
if ((tp->phy_flags & TG3_PHYFLG_MII_SERDES) && if ((tp->phy_flags & TG3_PHYFLG_MII_SERDES) &&
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714) { tg3_asic_rev(tp) == ASIC_REV_5714) {
u32 tmp; u32 tmp;
tmp = tr32(SERDES_RX_CTRL); tmp = tr32(SERDES_RX_CTRL);
...@@ -10126,9 +10124,9 @@ static void tg3_periodic_fetch_stats(struct tg3 *tp) ...@@ -10126,9 +10124,9 @@ static void tg3_periodic_fetch_stats(struct tg3 *tp)
TG3_STAT_ADD32(&sp->rx_undersize_packets, MAC_RX_STATS_UNDERSIZE); TG3_STAT_ADD32(&sp->rx_undersize_packets, MAC_RX_STATS_UNDERSIZE);
TG3_STAT_ADD32(&sp->rxbds_empty, RCVLPC_NO_RCV_BD_CNT); TG3_STAT_ADD32(&sp->rxbds_empty, RCVLPC_NO_RCV_BD_CNT);
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717 && if (tg3_asic_rev(tp) != ASIC_REV_5717 &&
tp->pci_chip_rev_id != CHIPREV_ID_5719_A0 && tg3_chip_rev_id(tp) != CHIPREV_ID_5719_A0 &&
tp->pci_chip_rev_id != CHIPREV_ID_5720_A0) { tg3_chip_rev_id(tp) != CHIPREV_ID_5720_A0) {
TG3_STAT_ADD32(&sp->rx_discards, RCVLPC_IN_DISCARDS_CNT); TG3_STAT_ADD32(&sp->rx_discards, RCVLPC_IN_DISCARDS_CNT);
} else { } else {
u32 val = tr32(HOSTCC_FLOW_ATTN); u32 val = tr32(HOSTCC_FLOW_ATTN);
...@@ -10176,7 +10174,7 @@ static void tg3_timer(unsigned long __opaque) ...@@ -10176,7 +10174,7 @@ static void tg3_timer(unsigned long __opaque)
spin_lock(&tp->lock); spin_lock(&tp->lock);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
tg3_flag(tp, 57765_CLASS)) tg3_flag(tp, 57765_CLASS))
tg3_chk_missed_msi(tp); tg3_chk_missed_msi(tp);
...@@ -10302,7 +10300,7 @@ static void tg3_timer(unsigned long __opaque) ...@@ -10302,7 +10300,7 @@ static void tg3_timer(unsigned long __opaque)
static void tg3_timer_init(struct tg3 *tp) static void tg3_timer_init(struct tg3 *tp)
{ {
if (tg3_flag(tp, TAGGED_STATUS) && if (tg3_flag(tp, TAGGED_STATUS) &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717 && tg3_asic_rev(tp) != ASIC_REV_5717 &&
!tg3_flag(tp, 57765_CLASS)) !tg3_flag(tp, 57765_CLASS))
tp->timer_offset = HZ; tp->timer_offset = HZ;
else else
...@@ -10883,7 +10881,7 @@ static int tg3_open(struct net_device *dev) ...@@ -10883,7 +10881,7 @@ static int tg3_open(struct net_device *dev)
if (tp->fw_needed) { if (tp->fw_needed) {
err = tg3_request_firmware(tp); err = tg3_request_firmware(tp);
if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0) { if (tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0) {
if (err) if (err)
return err; return err;
} else if (err) { } else if (err) {
...@@ -10953,8 +10951,8 @@ static u64 tg3_calc_crc_errors(struct tg3 *tp) ...@@ -10953,8 +10951,8 @@ static u64 tg3_calc_crc_errors(struct tg3 *tp)
struct tg3_hw_stats *hw_stats = tp->hw_stats; struct tg3_hw_stats *hw_stats = tp->hw_stats;
if (!(tp->phy_flags & TG3_PHYFLG_PHY_SERDES) && if (!(tp->phy_flags & TG3_PHYFLG_PHY_SERDES) &&
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || (tg3_asic_rev(tp) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)) { tg3_asic_rev(tp) == ASIC_REV_5701)) {
u32 val; u32 val;
if (!tg3_readphy(tp, MII_TG3_TEST1, &val)) { if (!tg3_readphy(tp, MII_TG3_TEST1, &val)) {
...@@ -12479,11 +12477,11 @@ static int tg3_test_memory(struct tg3 *tp) ...@@ -12479,11 +12477,11 @@ static int tg3_test_memory(struct tg3 *tp)
if (tg3_flag(tp, 5717_PLUS)) if (tg3_flag(tp, 5717_PLUS))
mem_tbl = mem_tbl_5717; mem_tbl = mem_tbl_5717;
else if (tg3_flag(tp, 57765_CLASS) || else if (tg3_flag(tp, 57765_CLASS) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) tg3_asic_rev(tp) == ASIC_REV_5762)
mem_tbl = mem_tbl_57765; mem_tbl = mem_tbl_57765;
else if (tg3_flag(tp, 5755_PLUS)) else if (tg3_flag(tp, 5755_PLUS))
mem_tbl = mem_tbl_5755; mem_tbl = mem_tbl_5755;
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) else if (tg3_asic_rev(tp) == ASIC_REV_5906)
mem_tbl = mem_tbl_5906; mem_tbl = mem_tbl_5906;
else if (tg3_flag(tp, 5705_PLUS)) else if (tg3_flag(tp, 5705_PLUS))
mem_tbl = mem_tbl_5705; mem_tbl = mem_tbl_5705;
...@@ -12595,7 +12593,7 @@ static int tg3_run_loopback(struct tg3 *tp, u32 pktsz, bool tso_loopback) ...@@ -12595,7 +12593,7 @@ static int tg3_run_loopback(struct tg3 *tp, u32 pktsz, bool tso_loopback)
} else if (tg3_flag(tp, HW_TSO_2)) } else if (tg3_flag(tp, HW_TSO_2))
mss |= hdr_len << 9; mss |= hdr_len << 9;
else if (tg3_flag(tp, HW_TSO_1) || else if (tg3_flag(tp, HW_TSO_1) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { tg3_asic_rev(tp) == ASIC_REV_5705) {
mss |= (TG3_TSO_TCP_OPT_LEN << 9); mss |= (TG3_TSO_TCP_OPT_LEN << 9);
} else { } else {
base_flags |= (TG3_TSO_TCP_OPT_LEN << 10); base_flags |= (TG3_TSO_TCP_OPT_LEN << 10);
...@@ -12781,7 +12779,7 @@ static int tg3_test_loopback(struct tg3 *tp, u64 *data, bool do_extlpbk) ...@@ -12781,7 +12779,7 @@ static int tg3_test_loopback(struct tg3 *tp, u64 *data, bool do_extlpbk)
* errata. Also, the MAC loopback test is deprecated for * errata. Also, the MAC loopback test is deprecated for
* all newer ASIC revisions. * all newer ASIC revisions.
*/ */
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5780 && if (tg3_asic_rev(tp) != ASIC_REV_5780 &&
!tg3_flag(tp, CPMU_PRESENT)) { !tg3_flag(tp, CPMU_PRESENT)) {
tg3_mac_loopback(tp, true); tg3_mac_loopback(tp, true);
...@@ -13268,7 +13266,7 @@ static int tg3_change_mtu(struct net_device *dev, int new_mtu) ...@@ -13268,7 +13266,7 @@ static int tg3_change_mtu(struct net_device *dev, int new_mtu)
/* Reset PHY, otherwise the read DMA engine will be in a mode that /* Reset PHY, otherwise the read DMA engine will be in a mode that
* breaks all requests to 256 bytes. * breaks all requests to 256 bytes.
*/ */
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57766) if (tg3_asic_rev(tp) == ASIC_REV_57766)
reset_phy = 1; reset_phy = 1;
err = tg3_restart_hw(tp, reset_phy); err = tg3_restart_hw(tp, reset_phy);
...@@ -13381,7 +13379,7 @@ static void tg3_get_nvram_info(struct tg3 *tp) ...@@ -13381,7 +13379,7 @@ static void tg3_get_nvram_info(struct tg3 *tp)
tw32(NVRAM_CFG1, nvcfg1); tw32(NVRAM_CFG1, nvcfg1);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 || if (tg3_asic_rev(tp) == ASIC_REV_5750 ||
tg3_flag(tp, 5780_CLASS)) { tg3_flag(tp, 5780_CLASS)) {
switch (nvcfg1 & NVRAM_CFG1_VENDOR_MASK) { switch (nvcfg1 & NVRAM_CFG1_VENDOR_MASK) {
case FLASH_VENDOR_ATMEL_FLASH_BUFFERED: case FLASH_VENDOR_ATMEL_FLASH_BUFFERED:
...@@ -13822,7 +13820,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp) ...@@ -13822,7 +13820,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp)
nvcfg1 = tr32(NVRAM_CFG1); nvcfg1 = tr32(NVRAM_CFG1);
nvmpinstrp = nvcfg1 & NVRAM_CFG1_5752VENDOR_MASK; nvmpinstrp = nvcfg1 & NVRAM_CFG1_5752VENDOR_MASK;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) { if (tg3_asic_rev(tp) == ASIC_REV_5762) {
if (!(nvcfg1 & NVRAM_CFG1_5762VENDOR_MASK)) { if (!(nvcfg1 & NVRAM_CFG1_5762VENDOR_MASK)) {
tg3_flag_set(tp, NO_NVRAM); tg3_flag_set(tp, NO_NVRAM);
return; return;
...@@ -13883,7 +13881,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp) ...@@ -13883,7 +13881,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp)
tp->nvram_size = TG3_NVRAM_SIZE_1MB; tp->nvram_size = TG3_NVRAM_SIZE_1MB;
break; break;
default: default:
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5762) if (tg3_asic_rev(tp) != ASIC_REV_5762)
tp->nvram_size = TG3_NVRAM_SIZE_128KB; tp->nvram_size = TG3_NVRAM_SIZE_128KB;
break; break;
} }
...@@ -13930,7 +13928,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp) ...@@ -13930,7 +13928,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp)
tp->nvram_size = TG3_NVRAM_SIZE_1MB; tp->nvram_size = TG3_NVRAM_SIZE_1MB;
break; break;
default: default:
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5762) if (tg3_asic_rev(tp) != ASIC_REV_5762)
tp->nvram_size = TG3_NVRAM_SIZE_128KB; tp->nvram_size = TG3_NVRAM_SIZE_128KB;
break; break;
} }
...@@ -13944,7 +13942,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp) ...@@ -13944,7 +13942,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp)
if (tp->nvram_pagesize != 264 && tp->nvram_pagesize != 528) if (tp->nvram_pagesize != 264 && tp->nvram_pagesize != 528)
tg3_flag_set(tp, NO_NVRAM_ADDR_TRANS); tg3_flag_set(tp, NO_NVRAM_ADDR_TRANS);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) { if (tg3_asic_rev(tp) == ASIC_REV_5762) {
u32 val; u32 val;
if (tg3_nvram_read(tp, 0, &val)) if (tg3_nvram_read(tp, 0, &val))
...@@ -13979,8 +13977,8 @@ static void tg3_nvram_init(struct tg3 *tp) ...@@ -13979,8 +13977,8 @@ static void tg3_nvram_init(struct tg3 *tp)
tr32(GRC_LOCAL_CTRL) | GRC_LCLCTRL_AUTO_SEEPROM); tr32(GRC_LOCAL_CTRL) | GRC_LCLCTRL_AUTO_SEEPROM);
udelay(100); udelay(100);
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 && if (tg3_asic_rev(tp) != ASIC_REV_5700 &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701) { tg3_asic_rev(tp) != ASIC_REV_5701) {
tg3_flag_set(tp, NVRAM); tg3_flag_set(tp, NVRAM);
if (tg3_nvram_lock(tp)) { if (tg3_nvram_lock(tp)) {
...@@ -13993,26 +13991,26 @@ static void tg3_nvram_init(struct tg3 *tp) ...@@ -13993,26 +13991,26 @@ static void tg3_nvram_init(struct tg3 *tp)
tp->nvram_size = 0; tp->nvram_size = 0;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752) if (tg3_asic_rev(tp) == ASIC_REV_5752)
tg3_get_5752_nvram_info(tp); tg3_get_5752_nvram_info(tp);
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755) else if (tg3_asic_rev(tp) == ASIC_REV_5755)
tg3_get_5755_nvram_info(tp); tg3_get_5755_nvram_info(tp);
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787 || else if (tg3_asic_rev(tp) == ASIC_REV_5787 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 || tg3_asic_rev(tp) == ASIC_REV_5784 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785) tg3_asic_rev(tp) == ASIC_REV_5785)
tg3_get_5787_nvram_info(tp); tg3_get_5787_nvram_info(tp);
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761) else if (tg3_asic_rev(tp) == ASIC_REV_5761)
tg3_get_5761_nvram_info(tp); tg3_get_5761_nvram_info(tp);
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) else if (tg3_asic_rev(tp) == ASIC_REV_5906)
tg3_get_5906_nvram_info(tp); tg3_get_5906_nvram_info(tp);
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 || else if (tg3_asic_rev(tp) == ASIC_REV_57780 ||
tg3_flag(tp, 57765_CLASS)) tg3_flag(tp, 57765_CLASS))
tg3_get_57780_nvram_info(tp); tg3_get_57780_nvram_info(tp);
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || else if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) tg3_asic_rev(tp) == ASIC_REV_5719)
tg3_get_5717_nvram_info(tp); tg3_get_5717_nvram_info(tp);
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 || else if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) tg3_asic_rev(tp) == ASIC_REV_5762)
tg3_get_5720_nvram_info(tp); tg3_get_5720_nvram_info(tp);
else else
tg3_get_nvram_info(tp); tg3_get_nvram_info(tp);
...@@ -14125,7 +14123,7 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp) ...@@ -14125,7 +14123,7 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp)
tg3_flag_set(tp, EEPROM_WRITE_PROT); tg3_flag_set(tp, EEPROM_WRITE_PROT);
tg3_flag_set(tp, WOL_CAP); tg3_flag_set(tp, WOL_CAP);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { if (tg3_asic_rev(tp) == ASIC_REV_5906) {
if (!(tr32(PCIE_TRANSACTION_CFG) & PCIE_TRANS_CFG_LOM)) { if (!(tr32(PCIE_TRANSACTION_CFG) & PCIE_TRANS_CFG_LOM)) {
tg3_flag_clear(tp, EEPROM_WRITE_PROT); tg3_flag_clear(tp, EEPROM_WRITE_PROT);
tg3_flag_set(tp, IS_NIC); tg3_flag_set(tp, IS_NIC);
...@@ -14152,13 +14150,13 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp) ...@@ -14152,13 +14150,13 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp)
tg3_read_mem(tp, NIC_SRAM_DATA_VER, &ver); tg3_read_mem(tp, NIC_SRAM_DATA_VER, &ver);
ver >>= NIC_SRAM_DATA_VER_SHIFT; ver >>= NIC_SRAM_DATA_VER_SHIFT;
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 && if (tg3_asic_rev(tp) != ASIC_REV_5700 &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701 && tg3_asic_rev(tp) != ASIC_REV_5701 &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5703 && tg3_asic_rev(tp) != ASIC_REV_5703 &&
(ver > 0) && (ver < 0x100)) (ver > 0) && (ver < 0x100))
tg3_read_mem(tp, NIC_SRAM_DATA_CFG_2, &cfg2); tg3_read_mem(tp, NIC_SRAM_DATA_CFG_2, &cfg2);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785) if (tg3_asic_rev(tp) == ASIC_REV_5785)
tg3_read_mem(tp, NIC_SRAM_DATA_CFG_4, &cfg4); tg3_read_mem(tp, NIC_SRAM_DATA_CFG_4, &cfg4);
if ((nic_cfg & NIC_SRAM_DATA_CFG_PHY_TYPE_MASK) == if ((nic_cfg & NIC_SRAM_DATA_CFG_PHY_TYPE_MASK) ==
...@@ -14206,18 +14204,16 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp) ...@@ -14206,18 +14204,16 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp)
/* Default to PHY_1_MODE if 0 (MAC_MODE) is /* Default to PHY_1_MODE if 0 (MAC_MODE) is
* read on some older 5700/5701 bootcode. * read on some older 5700/5701 bootcode.
*/ */
if (GET_ASIC_REV(tp->pci_chip_rev_id) == if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
ASIC_REV_5700 || tg3_asic_rev(tp) == ASIC_REV_5701)
GET_ASIC_REV(tp->pci_chip_rev_id) ==
ASIC_REV_5701)
tp->led_ctrl = LED_CTRL_MODE_PHY_1; tp->led_ctrl = LED_CTRL_MODE_PHY_1;
break; break;
case SHASTA_EXT_LED_SHARED: case SHASTA_EXT_LED_SHARED:
tp->led_ctrl = LED_CTRL_MODE_SHARED; tp->led_ctrl = LED_CTRL_MODE_SHARED;
if (tp->pci_chip_rev_id != CHIPREV_ID_5750_A0 && if (tg3_chip_rev_id(tp) != CHIPREV_ID_5750_A0 &&
tp->pci_chip_rev_id != CHIPREV_ID_5750_A1) tg3_chip_rev_id(tp) != CHIPREV_ID_5750_A1)
tp->led_ctrl |= (LED_CTRL_MODE_PHY_1 | tp->led_ctrl |= (LED_CTRL_MODE_PHY_1 |
LED_CTRL_MODE_PHY_2); LED_CTRL_MODE_PHY_2);
break; break;
...@@ -14228,19 +14224,19 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp) ...@@ -14228,19 +14224,19 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp)
case SHASTA_EXT_LED_COMBO: case SHASTA_EXT_LED_COMBO:
tp->led_ctrl = LED_CTRL_MODE_COMBO; tp->led_ctrl = LED_CTRL_MODE_COMBO;
if (tp->pci_chip_rev_id != CHIPREV_ID_5750_A0) if (tg3_chip_rev_id(tp) != CHIPREV_ID_5750_A0)
tp->led_ctrl |= (LED_CTRL_MODE_PHY_1 | tp->led_ctrl |= (LED_CTRL_MODE_PHY_1 |
LED_CTRL_MODE_PHY_2); LED_CTRL_MODE_PHY_2);
break; break;
} }
if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || if ((tg3_asic_rev(tp) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) && tg3_asic_rev(tp) == ASIC_REV_5701) &&
tp->pdev->subsystem_vendor == PCI_VENDOR_ID_DELL) tp->pdev->subsystem_vendor == PCI_VENDOR_ID_DELL)
tp->led_ctrl = LED_CTRL_MODE_PHY_2; tp->led_ctrl = LED_CTRL_MODE_PHY_2;
if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5784_AX) if (tg3_chip_rev(tp) == CHIPREV_5784_AX)
tp->led_ctrl = LED_CTRL_MODE_PHY_1; tp->led_ctrl = LED_CTRL_MODE_PHY_1;
if (nic_cfg & NIC_SRAM_DATA_CFG_EEPROM_WP) { if (nic_cfg & NIC_SRAM_DATA_CFG_EEPROM_WP) {
...@@ -14284,13 +14280,13 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp) ...@@ -14284,13 +14280,13 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp)
tp->phy_flags |= TG3_PHYFLG_SERDES_PREEMPHASIS; tp->phy_flags |= TG3_PHYFLG_SERDES_PREEMPHASIS;
if ((tg3_flag(tp, 57765_PLUS) || if ((tg3_flag(tp, 57765_PLUS) ||
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 && (tg3_asic_rev(tp) == ASIC_REV_5784 &&
GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5784_AX)) && tg3_chip_rev(tp) != CHIPREV_5784_AX)) &&
(cfg2 & NIC_SRAM_DATA_CFG_2_APD_EN)) (cfg2 & NIC_SRAM_DATA_CFG_2_APD_EN))
tp->phy_flags |= TG3_PHYFLG_ENABLE_APD; tp->phy_flags |= TG3_PHYFLG_ENABLE_APD;
if (tg3_flag(tp, PCI_EXPRESS) && if (tg3_flag(tp, PCI_EXPRESS) &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5785 && tg3_asic_rev(tp) != ASIC_REV_5785 &&
!tg3_flag(tp, 57765_PLUS)) { !tg3_flag(tp, 57765_PLUS)) {
u32 cfg3; u32 cfg3;
...@@ -14513,13 +14509,13 @@ static int tg3_phy_probe(struct tg3 *tp) ...@@ -14513,13 +14509,13 @@ static int tg3_phy_probe(struct tg3 *tp)
} }
if (!(tp->phy_flags & TG3_PHYFLG_ANY_SERDES) && if (!(tp->phy_flags & TG3_PHYFLG_ANY_SERDES) &&
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || (tg3_asic_rev(tp) == ASIC_REV_5719 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 || tg3_asic_rev(tp) == ASIC_REV_5720 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762 || tg3_asic_rev(tp) == ASIC_REV_5762 ||
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 && (tg3_asic_rev(tp) == ASIC_REV_5717 &&
tp->pci_chip_rev_id != CHIPREV_ID_5717_A0) || tg3_chip_rev_id(tp) != CHIPREV_ID_5717_A0) ||
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765 && (tg3_asic_rev(tp) == ASIC_REV_57765 &&
tp->pci_chip_rev_id != CHIPREV_ID_57765_A0))) tg3_chip_rev_id(tp) != CHIPREV_ID_57765_A0)))
tp->phy_flags |= TG3_PHYFLG_EEE_CAP; tp->phy_flags |= TG3_PHYFLG_EEE_CAP;
tg3_phy_init_link_config(tp); tg3_phy_init_link_config(tp);
...@@ -14629,7 +14625,7 @@ static void tg3_read_vpd(struct tg3 *tp) ...@@ -14629,7 +14625,7 @@ static void tg3_read_vpd(struct tg3 *tp)
return; return;
out_no_vpd: out_no_vpd:
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717) { if (tg3_asic_rev(tp) == ASIC_REV_5717) {
if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_5717 || if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_5717 ||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5717_C) tp->pdev->device == TG3PCI_DEVICE_TIGON3_5717_C)
strcpy(tp->board_part_number, "BCM5717"); strcpy(tp->board_part_number, "BCM5717");
...@@ -14637,7 +14633,7 @@ static void tg3_read_vpd(struct tg3 *tp) ...@@ -14637,7 +14633,7 @@ static void tg3_read_vpd(struct tg3 *tp)
strcpy(tp->board_part_number, "BCM5718"); strcpy(tp->board_part_number, "BCM5718");
else else
goto nomatch; goto nomatch;
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780) { } else if (tg3_asic_rev(tp) == ASIC_REV_57780) {
if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57780) if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57780)
strcpy(tp->board_part_number, "BCM57780"); strcpy(tp->board_part_number, "BCM57780");
else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57760) else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57760)
...@@ -14648,7 +14644,7 @@ static void tg3_read_vpd(struct tg3 *tp) ...@@ -14648,7 +14644,7 @@ static void tg3_read_vpd(struct tg3 *tp)
strcpy(tp->board_part_number, "BCM57788"); strcpy(tp->board_part_number, "BCM57788");
else else
goto nomatch; goto nomatch;
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) { } else if (tg3_asic_rev(tp) == ASIC_REV_57765) {
if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57761) if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57761)
strcpy(tp->board_part_number, "BCM57761"); strcpy(tp->board_part_number, "BCM57761");
else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57765) else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57765)
...@@ -14663,7 +14659,7 @@ static void tg3_read_vpd(struct tg3 *tp) ...@@ -14663,7 +14659,7 @@ static void tg3_read_vpd(struct tg3 *tp)
strcpy(tp->board_part_number, "BCM57795"); strcpy(tp->board_part_number, "BCM57795");
else else
goto nomatch; goto nomatch;
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57766) { } else if (tg3_asic_rev(tp) == ASIC_REV_57766) {
if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57762) if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57762)
strcpy(tp->board_part_number, "BCM57762"); strcpy(tp->board_part_number, "BCM57762");
else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57766) else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57766)
...@@ -14674,7 +14670,7 @@ static void tg3_read_vpd(struct tg3 *tp) ...@@ -14674,7 +14670,7 @@ static void tg3_read_vpd(struct tg3 *tp)
strcpy(tp->board_part_number, "BCM57786"); strcpy(tp->board_part_number, "BCM57786");
else else
goto nomatch; goto nomatch;
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { } else if (tg3_asic_rev(tp) == ASIC_REV_5906) {
strcpy(tp->board_part_number, "BCM95906"); strcpy(tp->board_part_number, "BCM95906");
} else { } else {
nomatch: nomatch:
...@@ -14915,7 +14911,7 @@ static void tg3_read_otp_ver(struct tg3 *tp) ...@@ -14915,7 +14911,7 @@ static void tg3_read_otp_ver(struct tg3 *tp)
{ {
u32 val, val2; u32 val, val2;
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5762) if (tg3_asic_rev(tp) != ASIC_REV_5762)
return; return;
if (!tg3_ape_otp_read(tp, OTP_ADDRESS_MAGIC0, &val) && if (!tg3_ape_otp_read(tp, OTP_ADDRESS_MAGIC0, &val) &&
...@@ -15021,7 +15017,7 @@ static struct pci_dev *tg3_find_peer(struct tg3 *tp) ...@@ -15021,7 +15017,7 @@ static struct pci_dev *tg3_find_peer(struct tg3 *tp)
static void tg3_detect_asic_rev(struct tg3 *tp, u32 misc_ctrl_reg) static void tg3_detect_asic_rev(struct tg3 *tp, u32 misc_ctrl_reg)
{ {
tp->pci_chip_rev_id = misc_ctrl_reg >> MISC_HOST_CTRL_CHIPREV_SHIFT; tp->pci_chip_rev_id = misc_ctrl_reg >> MISC_HOST_CTRL_CHIPREV_SHIFT;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_USE_PROD_ID_REG) { if (tg3_asic_rev(tp) == ASIC_REV_USE_PROD_ID_REG) {
u32 reg; u32 reg;
/* All devices that use the alternate /* All devices that use the alternate
...@@ -15058,47 +15054,47 @@ static void tg3_detect_asic_rev(struct tg3 *tp, u32 misc_ctrl_reg) ...@@ -15058,47 +15054,47 @@ static void tg3_detect_asic_rev(struct tg3 *tp, u32 misc_ctrl_reg)
/* Wrong chip ID in 5752 A0. This code can be removed later /* Wrong chip ID in 5752 A0. This code can be removed later
* as A0 is not in production. * as A0 is not in production.
*/ */
if (tp->pci_chip_rev_id == CHIPREV_ID_5752_A0_HW) if (tg3_chip_rev_id(tp) == CHIPREV_ID_5752_A0_HW)
tp->pci_chip_rev_id = CHIPREV_ID_5752_A0; tp->pci_chip_rev_id = CHIPREV_ID_5752_A0;
if (tp->pci_chip_rev_id == CHIPREV_ID_5717_C0) if (tg3_chip_rev_id(tp) == CHIPREV_ID_5717_C0)
tp->pci_chip_rev_id = CHIPREV_ID_5720_A0; tp->pci_chip_rev_id = CHIPREV_ID_5720_A0;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || tg3_asic_rev(tp) == ASIC_REV_5719 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) tg3_asic_rev(tp) == ASIC_REV_5720)
tg3_flag_set(tp, 5717_PLUS); tg3_flag_set(tp, 5717_PLUS);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765 || if (tg3_asic_rev(tp) == ASIC_REV_57765 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57766) tg3_asic_rev(tp) == ASIC_REV_57766)
tg3_flag_set(tp, 57765_CLASS); tg3_flag_set(tp, 57765_CLASS);
if (tg3_flag(tp, 57765_CLASS) || tg3_flag(tp, 5717_PLUS) || if (tg3_flag(tp, 57765_CLASS) || tg3_flag(tp, 5717_PLUS) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) tg3_asic_rev(tp) == ASIC_REV_5762)
tg3_flag_set(tp, 57765_PLUS); tg3_flag_set(tp, 57765_PLUS);
/* Intentionally exclude ASIC_REV_5906 */ /* Intentionally exclude ASIC_REV_5906 */
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || if (tg3_asic_rev(tp) == ASIC_REV_5755 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787 || tg3_asic_rev(tp) == ASIC_REV_5787 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 || tg3_asic_rev(tp) == ASIC_REV_5784 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761 || tg3_asic_rev(tp) == ASIC_REV_5761 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 || tg3_asic_rev(tp) == ASIC_REV_5785 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 || tg3_asic_rev(tp) == ASIC_REV_57780 ||
tg3_flag(tp, 57765_PLUS)) tg3_flag(tp, 57765_PLUS))
tg3_flag_set(tp, 5755_PLUS); tg3_flag_set(tp, 5755_PLUS);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5780 || if (tg3_asic_rev(tp) == ASIC_REV_5780 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714) tg3_asic_rev(tp) == ASIC_REV_5714)
tg3_flag_set(tp, 5780_CLASS); tg3_flag_set(tp, 5780_CLASS);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 || if (tg3_asic_rev(tp) == ASIC_REV_5750 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752 || tg3_asic_rev(tp) == ASIC_REV_5752 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906 || tg3_asic_rev(tp) == ASIC_REV_5906 ||
tg3_flag(tp, 5755_PLUS) || tg3_flag(tp, 5755_PLUS) ||
tg3_flag(tp, 5780_CLASS)) tg3_flag(tp, 5780_CLASS))
tg3_flag_set(tp, 5750_PLUS); tg3_flag_set(tp, 5750_PLUS);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 || if (tg3_asic_rev(tp) == ASIC_REV_5705 ||
tg3_flag(tp, 5750_PLUS)) tg3_flag(tp, 5750_PLUS))
tg3_flag_set(tp, 5705_PLUS); tg3_flag_set(tp, 5705_PLUS);
} }
...@@ -15108,13 +15104,13 @@ static bool tg3_10_100_only_device(struct tg3 *tp, ...@@ -15108,13 +15104,13 @@ static bool tg3_10_100_only_device(struct tg3 *tp,
{ {
u32 grc_misc_cfg = tr32(GRC_MISC_CFG) & GRC_MISC_CFG_BOARD_ID_MASK; u32 grc_misc_cfg = tr32(GRC_MISC_CFG) & GRC_MISC_CFG_BOARD_ID_MASK;
if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 && if ((tg3_asic_rev(tp) == ASIC_REV_5703 &&
(grc_misc_cfg == 0x8000 || grc_misc_cfg == 0x4000)) || (grc_misc_cfg == 0x8000 || grc_misc_cfg == 0x4000)) ||
(tp->phy_flags & TG3_PHYFLG_IS_FET)) (tp->phy_flags & TG3_PHYFLG_IS_FET))
return true; return true;
if (ent->driver_data & TG3_DRV_DATA_FLAG_10_100_ONLY) { if (ent->driver_data & TG3_DRV_DATA_FLAG_10_100_ONLY) {
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { if (tg3_asic_rev(tp) == ASIC_REV_5705) {
if (ent->driver_data & TG3_DRV_DATA_FLAG_5705_10_100) if (ent->driver_data & TG3_DRV_DATA_FLAG_5705_10_100)
return true; return true;
} else { } else {
...@@ -15175,8 +15171,8 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15175,8 +15171,8 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
* enable this workaround if the 5703 is on the secondary * enable this workaround if the 5703 is on the secondary
* bus of these ICH bridges. * bus of these ICH bridges.
*/ */
if ((tp->pci_chip_rev_id == CHIPREV_ID_5703_A1) || if ((tg3_chip_rev_id(tp) == CHIPREV_ID_5703_A1) ||
(tp->pci_chip_rev_id == CHIPREV_ID_5703_A2)) { (tg3_chip_rev_id(tp) == CHIPREV_ID_5703_A2)) {
static struct tg3_dev_id { static struct tg3_dev_id {
u32 vendor; u32 vendor;
u32 device; u32 device;
...@@ -15216,7 +15212,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15216,7 +15212,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
} }
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) { if (tg3_asic_rev(tp) == ASIC_REV_5701) {
static struct tg3_dev_id { static struct tg3_dev_id {
u32 vendor; u32 vendor;
u32 device; u32 device;
...@@ -15276,29 +15272,29 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15276,29 +15272,29 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
} while (bridge); } while (bridge);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 || if (tg3_asic_rev(tp) == ASIC_REV_5704 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714) tg3_asic_rev(tp) == ASIC_REV_5714)
tp->pdev_peer = tg3_find_peer(tp); tp->pdev_peer = tg3_find_peer(tp);
/* Determine TSO capabilities */ /* Determine TSO capabilities */
if (tp->pci_chip_rev_id == CHIPREV_ID_5719_A0) if (tg3_chip_rev_id(tp) == CHIPREV_ID_5719_A0)
; /* Do nothing. HW bug. */ ; /* Do nothing. HW bug. */
else if (tg3_flag(tp, 57765_PLUS)) else if (tg3_flag(tp, 57765_PLUS))
tg3_flag_set(tp, HW_TSO_3); tg3_flag_set(tp, HW_TSO_3);
else if (tg3_flag(tp, 5755_PLUS) || else if (tg3_flag(tp, 5755_PLUS) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) tg3_asic_rev(tp) == ASIC_REV_5906)
tg3_flag_set(tp, HW_TSO_2); tg3_flag_set(tp, HW_TSO_2);
else if (tg3_flag(tp, 5750_PLUS)) { else if (tg3_flag(tp, 5750_PLUS)) {
tg3_flag_set(tp, HW_TSO_1); tg3_flag_set(tp, HW_TSO_1);
tg3_flag_set(tp, TSO_BUG); tg3_flag_set(tp, TSO_BUG);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 && if (tg3_asic_rev(tp) == ASIC_REV_5750 &&
tp->pci_chip_rev_id >= CHIPREV_ID_5750_C2) tg3_chip_rev_id(tp) >= CHIPREV_ID_5750_C2)
tg3_flag_clear(tp, TSO_BUG); tg3_flag_clear(tp, TSO_BUG);
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 && } else if (tg3_asic_rev(tp) != ASIC_REV_5700 &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701 && tg3_asic_rev(tp) != ASIC_REV_5701 &&
tp->pci_chip_rev_id != CHIPREV_ID_5705_A0) { tg3_chip_rev_id(tp) != CHIPREV_ID_5705_A0) {
tg3_flag_set(tp, TSO_BUG); tg3_flag_set(tp, TSO_BUG);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) if (tg3_asic_rev(tp) == ASIC_REV_5705)
tp->fw_needed = FIRMWARE_TG3TSO5; tp->fw_needed = FIRMWARE_TG3TSO5;
else else
tp->fw_needed = FIRMWARE_TG3TSO; tp->fw_needed = FIRMWARE_TG3TSO;
...@@ -15320,22 +15316,22 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15320,22 +15316,22 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
tp->fw_needed = NULL; tp->fw_needed = NULL;
} }
if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0) if (tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0)
tp->fw_needed = FIRMWARE_TG3; tp->fw_needed = FIRMWARE_TG3;
tp->irq_max = 1; tp->irq_max = 1;
if (tg3_flag(tp, 5750_PLUS)) { if (tg3_flag(tp, 5750_PLUS)) {
tg3_flag_set(tp, SUPPORT_MSI); tg3_flag_set(tp, SUPPORT_MSI);
if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_AX || if (tg3_chip_rev(tp) == CHIPREV_5750_AX ||
GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_BX || tg3_chip_rev(tp) == CHIPREV_5750_BX ||
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714 && (tg3_asic_rev(tp) == ASIC_REV_5714 &&
tp->pci_chip_rev_id <= CHIPREV_ID_5714_A2 && tg3_chip_rev_id(tp) <= CHIPREV_ID_5714_A2 &&
tp->pdev_peer == tp->pdev)) tp->pdev_peer == tp->pdev))
tg3_flag_clear(tp, SUPPORT_MSI); tg3_flag_clear(tp, SUPPORT_MSI);
if (tg3_flag(tp, 5755_PLUS) || if (tg3_flag(tp, 5755_PLUS) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { tg3_asic_rev(tp) == ASIC_REV_5906) {
tg3_flag_set(tp, 1SHOT_MSI); tg3_flag_set(tp, 1SHOT_MSI);
} }
...@@ -15351,26 +15347,26 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15351,26 +15347,26 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
tp->rxq_max = TG3_RSS_MAX_NUM_QS; tp->rxq_max = TG3_RSS_MAX_NUM_QS;
tg3_rss_init_dflt_indir_tbl(tp, TG3_RSS_MAX_NUM_QS); tg3_rss_init_dflt_indir_tbl(tp, TG3_RSS_MAX_NUM_QS);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || if (tg3_asic_rev(tp) == ASIC_REV_5719 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) tg3_asic_rev(tp) == ASIC_REV_5720)
tp->txq_max = tp->irq_max - 1; tp->txq_max = tp->irq_max - 1;
} }
if (tg3_flag(tp, 5755_PLUS) || if (tg3_flag(tp, 5755_PLUS) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) tg3_asic_rev(tp) == ASIC_REV_5906)
tg3_flag_set(tp, SHORT_DMA_BUG); tg3_flag_set(tp, SHORT_DMA_BUG);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) if (tg3_asic_rev(tp) == ASIC_REV_5719)
tp->dma_limit = TG3_TX_BD_DMA_MAX_4K; tp->dma_limit = TG3_TX_BD_DMA_MAX_4K;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || tg3_asic_rev(tp) == ASIC_REV_5719 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 || tg3_asic_rev(tp) == ASIC_REV_5720 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) tg3_asic_rev(tp) == ASIC_REV_5762)
tg3_flag_set(tp, LRG_PROD_RING_CAP); tg3_flag_set(tp, LRG_PROD_RING_CAP);
if (tg3_flag(tp, 57765_PLUS) && if (tg3_flag(tp, 57765_PLUS) &&
tp->pci_chip_rev_id != CHIPREV_ID_5719_A0) tg3_chip_rev_id(tp) != CHIPREV_ID_5719_A0)
tg3_flag_set(tp, USE_JUMBO_BDFLAG); tg3_flag_set(tp, USE_JUMBO_BDFLAG);
if (!tg3_flag(tp, 5705_PLUS) || if (!tg3_flag(tp, 5705_PLUS) ||
...@@ -15388,20 +15384,19 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15388,20 +15384,19 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
pcie_capability_read_word(tp->pdev, PCI_EXP_LNKCTL, &lnkctl); pcie_capability_read_word(tp->pdev, PCI_EXP_LNKCTL, &lnkctl);
if (lnkctl & PCI_EXP_LNKCTL_CLKREQ_EN) { if (lnkctl & PCI_EXP_LNKCTL_CLKREQ_EN) {
if (GET_ASIC_REV(tp->pci_chip_rev_id) == if (tg3_asic_rev(tp) == ASIC_REV_5906) {
ASIC_REV_5906) {
tg3_flag_clear(tp, HW_TSO_2); tg3_flag_clear(tp, HW_TSO_2);
tg3_flag_clear(tp, TSO_CAPABLE); tg3_flag_clear(tp, TSO_CAPABLE);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 || if (tg3_asic_rev(tp) == ASIC_REV_5784 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761 || tg3_asic_rev(tp) == ASIC_REV_5761 ||
tp->pci_chip_rev_id == CHIPREV_ID_57780_A0 || tg3_chip_rev_id(tp) == CHIPREV_ID_57780_A0 ||
tp->pci_chip_rev_id == CHIPREV_ID_57780_A1) tg3_chip_rev_id(tp) == CHIPREV_ID_57780_A1)
tg3_flag_set(tp, CLKREQ_BUG); tg3_flag_set(tp, CLKREQ_BUG);
} else if (tp->pci_chip_rev_id == CHIPREV_ID_5717_A0) { } else if (tg3_chip_rev_id(tp) == CHIPREV_ID_5717_A0) {
tg3_flag_set(tp, L1PLLPD_EN); tg3_flag_set(tp, L1PLLPD_EN);
} }
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785) { } else if (tg3_asic_rev(tp) == ASIC_REV_5785) {
/* BCM5785 devices are effectively PCIe devices, and should /* BCM5785 devices are effectively PCIe devices, and should
* follow PCIe codepaths, but do not have a PCIe capabilities * follow PCIe codepaths, but do not have a PCIe capabilities
* section. * section.
...@@ -15434,7 +15429,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15434,7 +15429,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
&tp->pci_cacheline_sz); &tp->pci_cacheline_sz);
pci_read_config_byte(tp->pdev, PCI_LATENCY_TIMER, pci_read_config_byte(tp->pdev, PCI_LATENCY_TIMER,
&tp->pci_lat_timer); &tp->pci_lat_timer);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 && if (tg3_asic_rev(tp) == ASIC_REV_5703 &&
tp->pci_lat_timer < 64) { tp->pci_lat_timer < 64) {
tp->pci_lat_timer = 64; tp->pci_lat_timer = 64;
pci_write_config_byte(tp->pdev, PCI_LATENCY_TIMER, pci_write_config_byte(tp->pdev, PCI_LATENCY_TIMER,
...@@ -15444,7 +15439,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15444,7 +15439,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
/* Important! -- It is critical that the PCI-X hw workaround /* Important! -- It is critical that the PCI-X hw workaround
* situation is decided before the first MMIO register access. * situation is decided before the first MMIO register access.
*/ */
if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5700_BX) { if (tg3_chip_rev(tp) == CHIPREV_5700_BX) {
/* 5700 BX chips need to have their TX producer index /* 5700 BX chips need to have their TX producer index
* mailboxes written twice to workaround a bug. * mailboxes written twice to workaround a bug.
*/ */
...@@ -15486,7 +15481,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15486,7 +15481,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
tg3_flag_set(tp, PCI_32BIT); tg3_flag_set(tp, PCI_32BIT);
/* Chip-specific fixup from Broadcom driver */ /* Chip-specific fixup from Broadcom driver */
if ((tp->pci_chip_rev_id == CHIPREV_ID_5704_A0) && if ((tg3_chip_rev_id(tp) == CHIPREV_ID_5704_A0) &&
(!(pci_state_reg & PCISTATE_RETRY_SAME_DMA))) { (!(pci_state_reg & PCISTATE_RETRY_SAME_DMA))) {
pci_state_reg |= PCISTATE_RETRY_SAME_DMA; pci_state_reg |= PCISTATE_RETRY_SAME_DMA;
pci_write_config_dword(tp->pdev, TG3PCI_PCISTATE, pci_state_reg); pci_write_config_dword(tp->pdev, TG3PCI_PCISTATE, pci_state_reg);
...@@ -15503,9 +15498,9 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15503,9 +15498,9 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
/* Various workaround register access methods */ /* Various workaround register access methods */
if (tg3_flag(tp, PCIX_TARGET_HWBUG)) if (tg3_flag(tp, PCIX_TARGET_HWBUG))
tp->write32 = tg3_write_indirect_reg32; tp->write32 = tg3_write_indirect_reg32;
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701 || else if (tg3_asic_rev(tp) == ASIC_REV_5701 ||
(tg3_flag(tp, PCI_EXPRESS) && (tg3_flag(tp, PCI_EXPRESS) &&
tp->pci_chip_rev_id == CHIPREV_ID_5750_A0)) { tg3_chip_rev_id(tp) == CHIPREV_ID_5750_A0)) {
/* /*
* Back to back register writes can cause problems on these * Back to back register writes can cause problems on these
* chips, the workaround is to read back all reg writes * chips, the workaround is to read back all reg writes
...@@ -15537,7 +15532,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15537,7 +15532,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
pci_cmd &= ~PCI_COMMAND_MEMORY; pci_cmd &= ~PCI_COMMAND_MEMORY;
pci_write_config_word(tp->pdev, PCI_COMMAND, pci_cmd); pci_write_config_word(tp->pdev, PCI_COMMAND, pci_cmd);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { if (tg3_asic_rev(tp) == ASIC_REV_5906) {
tp->read32_mbox = tg3_read32_mbox_5906; tp->read32_mbox = tg3_read32_mbox_5906;
tp->write32_mbox = tg3_write32_mbox_5906; tp->write32_mbox = tg3_write32_mbox_5906;
tp->write32_tx_mbox = tg3_write32_mbox_5906; tp->write32_tx_mbox = tg3_write32_mbox_5906;
...@@ -15546,8 +15541,8 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15546,8 +15541,8 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
if (tp->write32 == tg3_write_indirect_reg32 || if (tp->write32 == tg3_write_indirect_reg32 ||
(tg3_flag(tp, PCIX_MODE) && (tg3_flag(tp, PCIX_MODE) &&
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || (tg3_asic_rev(tp) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701))) tg3_asic_rev(tp) == ASIC_REV_5701)))
tg3_flag_set(tp, SRAM_USE_CONFIG); tg3_flag_set(tp, SRAM_USE_CONFIG);
/* The memory arbiter has to be enabled in order for SRAM accesses /* The memory arbiter has to be enabled in order for SRAM accesses
...@@ -15559,7 +15554,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15559,7 +15554,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
tw32(MEMARB_MODE, val | MEMARB_MODE_ENABLE); tw32(MEMARB_MODE, val | MEMARB_MODE_ENABLE);
tp->pci_fn = PCI_FUNC(tp->pdev->devfn) & 3; tp->pci_fn = PCI_FUNC(tp->pdev->devfn) & 3;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 || if (tg3_asic_rev(tp) == ASIC_REV_5704 ||
tg3_flag(tp, 5780_CLASS)) { tg3_flag(tp, 5780_CLASS)) {
if (tg3_flag(tp, PCIX_MODE)) { if (tg3_flag(tp, PCIX_MODE)) {
pci_read_config_dword(tp->pdev, pci_read_config_dword(tp->pdev,
...@@ -15567,14 +15562,14 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15567,14 +15562,14 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
&val); &val);
tp->pci_fn = val & 0x7; tp->pci_fn = val & 0x7;
} }
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || } else if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || tg3_asic_rev(tp) == ASIC_REV_5719 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) { tg3_asic_rev(tp) == ASIC_REV_5720) {
tg3_read_mem(tp, NIC_SRAM_CPMU_STATUS, &val); tg3_read_mem(tp, NIC_SRAM_CPMU_STATUS, &val);
if ((val & NIC_SRAM_CPMUSTAT_SIG_MSK) != NIC_SRAM_CPMUSTAT_SIG) if ((val & NIC_SRAM_CPMUSTAT_SIG_MSK) != NIC_SRAM_CPMUSTAT_SIG)
val = tr32(TG3_CPMU_STATUS); val = tr32(TG3_CPMU_STATUS);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717) if (tg3_asic_rev(tp) == ASIC_REV_5717)
tp->pci_fn = (val & TG3_CPMU_STATUS_FMSK_5717) ? 1 : 0; tp->pci_fn = (val & TG3_CPMU_STATUS_FMSK_5717) ? 1 : 0;
else else
tp->pci_fn = (val & TG3_CPMU_STATUS_FMSK_5719) >> tp->pci_fn = (val & TG3_CPMU_STATUS_FMSK_5719) >>
...@@ -15621,18 +15616,18 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15621,18 +15616,18 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
* It is also used as eeprom write protect on LOMs. * It is also used as eeprom write protect on LOMs.
*/ */
tp->grc_local_ctrl = GRC_LCLCTRL_INT_ON_ATTN | GRC_LCLCTRL_AUTO_SEEPROM; tp->grc_local_ctrl = GRC_LCLCTRL_INT_ON_ATTN | GRC_LCLCTRL_AUTO_SEEPROM;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
tg3_flag(tp, EEPROM_WRITE_PROT)) tg3_flag(tp, EEPROM_WRITE_PROT))
tp->grc_local_ctrl |= (GRC_LCLCTRL_GPIO_OE1 | tp->grc_local_ctrl |= (GRC_LCLCTRL_GPIO_OE1 |
GRC_LCLCTRL_GPIO_OUTPUT1); GRC_LCLCTRL_GPIO_OUTPUT1);
/* Unused GPIO3 must be driven as output on 5752 because there /* Unused GPIO3 must be driven as output on 5752 because there
* are no pull-up resistors on unused GPIO pins. * are no pull-up resistors on unused GPIO pins.
*/ */
else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752) else if (tg3_asic_rev(tp) == ASIC_REV_5752)
tp->grc_local_ctrl |= GRC_LCLCTRL_GPIO_OE3; tp->grc_local_ctrl |= GRC_LCLCTRL_GPIO_OE3;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || if (tg3_asic_rev(tp) == ASIC_REV_5755 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 || tg3_asic_rev(tp) == ASIC_REV_57780 ||
tg3_flag(tp, 57765_CLASS)) tg3_flag(tp, 57765_CLASS))
tp->grc_local_ctrl |= GRC_LCLCTRL_GPIO_UART_SEL; tp->grc_local_ctrl |= GRC_LCLCTRL_GPIO_UART_SEL;
...@@ -15646,7 +15641,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15646,7 +15641,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
GRC_LCLCTRL_GPIO_OUTPUT0; GRC_LCLCTRL_GPIO_OUTPUT0;
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) if (tg3_asic_rev(tp) == ASIC_REV_5762)
tp->grc_local_ctrl |= tp->grc_local_ctrl |=
tr32(GRC_LOCAL_CTRL) & GRC_LCLCTRL_GPIO_UART_SEL; tr32(GRC_LOCAL_CTRL) & GRC_LCLCTRL_GPIO_UART_SEL;
...@@ -15660,42 +15655,42 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15660,42 +15655,42 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
tg3_flag_set(tp, JUMBO_RING_ENABLE); tg3_flag_set(tp, JUMBO_RING_ENABLE);
/* Determine WakeOnLan speed to use. */ /* Determine WakeOnLan speed to use. */
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
tp->pci_chip_rev_id == CHIPREV_ID_5701_A0 || tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0 ||
tp->pci_chip_rev_id == CHIPREV_ID_5701_B0 || tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B0 ||
tp->pci_chip_rev_id == CHIPREV_ID_5701_B2) { tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B2) {
tg3_flag_clear(tp, WOL_SPEED_100MB); tg3_flag_clear(tp, WOL_SPEED_100MB);
} else { } else {
tg3_flag_set(tp, WOL_SPEED_100MB); tg3_flag_set(tp, WOL_SPEED_100MB);
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) if (tg3_asic_rev(tp) == ASIC_REV_5906)
tp->phy_flags |= TG3_PHYFLG_IS_FET; tp->phy_flags |= TG3_PHYFLG_IS_FET;
/* A few boards don't want Ethernet@WireSpeed phy feature */ /* A few boards don't want Ethernet@WireSpeed phy feature */
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 && (tg3_asic_rev(tp) == ASIC_REV_5705 &&
(tp->pci_chip_rev_id != CHIPREV_ID_5705_A0) && (tg3_chip_rev_id(tp) != CHIPREV_ID_5705_A0) &&
(tp->pci_chip_rev_id != CHIPREV_ID_5705_A1)) || (tg3_chip_rev_id(tp) != CHIPREV_ID_5705_A1)) ||
(tp->phy_flags & TG3_PHYFLG_IS_FET) || (tp->phy_flags & TG3_PHYFLG_IS_FET) ||
(tp->phy_flags & TG3_PHYFLG_ANY_SERDES)) (tp->phy_flags & TG3_PHYFLG_ANY_SERDES))
tp->phy_flags |= TG3_PHYFLG_NO_ETH_WIRE_SPEED; tp->phy_flags |= TG3_PHYFLG_NO_ETH_WIRE_SPEED;
if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5703_AX || if (tg3_chip_rev(tp) == CHIPREV_5703_AX ||
GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5704_AX) tg3_chip_rev(tp) == CHIPREV_5704_AX)
tp->phy_flags |= TG3_PHYFLG_ADC_BUG; tp->phy_flags |= TG3_PHYFLG_ADC_BUG;
if (tp->pci_chip_rev_id == CHIPREV_ID_5704_A0) if (tg3_chip_rev_id(tp) == CHIPREV_ID_5704_A0)
tp->phy_flags |= TG3_PHYFLG_5704_A0_BUG; tp->phy_flags |= TG3_PHYFLG_5704_A0_BUG;
if (tg3_flag(tp, 5705_PLUS) && if (tg3_flag(tp, 5705_PLUS) &&
!(tp->phy_flags & TG3_PHYFLG_IS_FET) && !(tp->phy_flags & TG3_PHYFLG_IS_FET) &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5785 && tg3_asic_rev(tp) != ASIC_REV_5785 &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_57780 && tg3_asic_rev(tp) != ASIC_REV_57780 &&
!tg3_flag(tp, 57765_PLUS)) { !tg3_flag(tp, 57765_PLUS)) {
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || if (tg3_asic_rev(tp) == ASIC_REV_5755 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787 || tg3_asic_rev(tp) == ASIC_REV_5787 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 || tg3_asic_rev(tp) == ASIC_REV_5784 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761) { tg3_asic_rev(tp) == ASIC_REV_5761) {
if (tp->pdev->device != PCI_DEVICE_ID_TIGON3_5756 && if (tp->pdev->device != PCI_DEVICE_ID_TIGON3_5756 &&
tp->pdev->device != PCI_DEVICE_ID_TIGON3_5722) tp->pdev->device != PCI_DEVICE_ID_TIGON3_5722)
tp->phy_flags |= TG3_PHYFLG_JITTER_BUG; tp->phy_flags |= TG3_PHYFLG_JITTER_BUG;
...@@ -15705,8 +15700,8 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15705,8 +15700,8 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
tp->phy_flags |= TG3_PHYFLG_BER_BUG; tp->phy_flags |= TG3_PHYFLG_BER_BUG;
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 && if (tg3_asic_rev(tp) == ASIC_REV_5784 &&
GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5784_AX) { tg3_chip_rev(tp) != CHIPREV_5784_AX) {
tp->phy_otp = tg3_read_otp_phycfg(tp); tp->phy_otp = tg3_read_otp_phycfg(tp);
if (tp->phy_otp == 0) if (tp->phy_otp == 0)
tp->phy_otp = TG3_OTP_DEFAULT; tp->phy_otp = TG3_OTP_DEFAULT;
...@@ -15718,20 +15713,20 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15718,20 +15713,20 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
tp->mi_mode = MAC_MI_MODE_BASE; tp->mi_mode = MAC_MI_MODE_BASE;
tp->coalesce_mode = 0; tp->coalesce_mode = 0;
if (GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5700_AX && if (tg3_chip_rev(tp) != CHIPREV_5700_AX &&
GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5700_BX) tg3_chip_rev(tp) != CHIPREV_5700_BX)
tp->coalesce_mode |= HOSTCC_MODE_32BYTE; tp->coalesce_mode |= HOSTCC_MODE_32BYTE;
/* Set these bits to enable statistics workaround. */ /* Set these bits to enable statistics workaround. */
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
tp->pci_chip_rev_id == CHIPREV_ID_5719_A0 || tg3_chip_rev_id(tp) == CHIPREV_ID_5719_A0 ||
tp->pci_chip_rev_id == CHIPREV_ID_5720_A0) { tg3_chip_rev_id(tp) == CHIPREV_ID_5720_A0) {
tp->coalesce_mode |= HOSTCC_MODE_ATTN; tp->coalesce_mode |= HOSTCC_MODE_ATTN;
tp->grc_mode |= GRC_MODE_IRQ_ON_FLOW_ATTN; tp->grc_mode |= GRC_MODE_IRQ_ON_FLOW_ATTN;
} }
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 || if (tg3_asic_rev(tp) == ASIC_REV_5785 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780) tg3_asic_rev(tp) == ASIC_REV_57780)
tg3_flag_set(tp, USE_PHYLIB); tg3_flag_set(tp, USE_PHYLIB);
err = tg3_mdio_init(tp); err = tg3_mdio_init(tp);
...@@ -15740,8 +15735,8 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15740,8 +15735,8 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
/* Initialize data/descriptor byte/word swapping. */ /* Initialize data/descriptor byte/word swapping. */
val = tr32(GRC_MODE); val = tr32(GRC_MODE);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 || if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) tg3_asic_rev(tp) == ASIC_REV_5762)
val &= (GRC_MODE_BYTE_SWAP_B2HRX_DATA | val &= (GRC_MODE_BYTE_SWAP_B2HRX_DATA |
GRC_MODE_WORD_SWAP_B2HRX_DATA | GRC_MODE_WORD_SWAP_B2HRX_DATA |
GRC_MODE_B2HRX_ENABLE | GRC_MODE_B2HRX_ENABLE |
...@@ -15761,10 +15756,10 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15761,10 +15756,10 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
&pci_state_reg); &pci_state_reg);
if ((pci_state_reg & PCISTATE_CONV_PCI_MODE) == 0 && if ((pci_state_reg & PCISTATE_CONV_PCI_MODE) == 0 &&
!tg3_flag(tp, PCIX_TARGET_HWBUG)) { !tg3_flag(tp, PCIX_TARGET_HWBUG)) {
if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0 || if (tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0 ||
tp->pci_chip_rev_id == CHIPREV_ID_5701_B0 || tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B0 ||
tp->pci_chip_rev_id == CHIPREV_ID_5701_B2 || tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B2 ||
tp->pci_chip_rev_id == CHIPREV_ID_5701_B5) { tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B5) {
void __iomem *sram_base; void __iomem *sram_base;
/* Write some dummy words into the SRAM status block /* Write some dummy words into the SRAM status block
...@@ -15787,13 +15782,13 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15787,13 +15782,13 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
grc_misc_cfg = tr32(GRC_MISC_CFG); grc_misc_cfg = tr32(GRC_MISC_CFG);
grc_misc_cfg &= GRC_MISC_CFG_BOARD_ID_MASK; grc_misc_cfg &= GRC_MISC_CFG_BOARD_ID_MASK;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 && if (tg3_asic_rev(tp) == ASIC_REV_5705 &&
(grc_misc_cfg == GRC_MISC_CFG_BOARD_ID_5788 || (grc_misc_cfg == GRC_MISC_CFG_BOARD_ID_5788 ||
grc_misc_cfg == GRC_MISC_CFG_BOARD_ID_5788M)) grc_misc_cfg == GRC_MISC_CFG_BOARD_ID_5788M))
tg3_flag_set(tp, IS_5788); tg3_flag_set(tp, IS_5788);
if (!tg3_flag(tp, IS_5788) && if (!tg3_flag(tp, IS_5788) &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700) tg3_asic_rev(tp) != ASIC_REV_5700)
tg3_flag_set(tp, TAGGED_STATUS); tg3_flag_set(tp, TAGGED_STATUS);
if (tg3_flag(tp, TAGGED_STATUS)) { if (tg3_flag(tp, TAGGED_STATUS)) {
tp->coalesce_mode |= (HOSTCC_MODE_CLRTICK_RXBD | tp->coalesce_mode |= (HOSTCC_MODE_CLRTICK_RXBD |
...@@ -15826,7 +15821,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15826,7 +15821,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
if (tp->phy_flags & TG3_PHYFLG_PHY_SERDES) { if (tp->phy_flags & TG3_PHYFLG_PHY_SERDES) {
tp->phy_flags &= ~TG3_PHYFLG_USE_MI_INTERRUPT; tp->phy_flags &= ~TG3_PHYFLG_USE_MI_INTERRUPT;
} else { } else {
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700) if (tg3_asic_rev(tp) == ASIC_REV_5700)
tp->phy_flags |= TG3_PHYFLG_USE_MI_INTERRUPT; tp->phy_flags |= TG3_PHYFLG_USE_MI_INTERRUPT;
else else
tp->phy_flags &= ~TG3_PHYFLG_USE_MI_INTERRUPT; tp->phy_flags &= ~TG3_PHYFLG_USE_MI_INTERRUPT;
...@@ -15836,7 +15831,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15836,7 +15831,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
* change bit implementation, so we must use the * change bit implementation, so we must use the
* status register in those cases. * status register in those cases.
*/ */
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700) if (tg3_asic_rev(tp) == ASIC_REV_5700)
tg3_flag_set(tp, USE_LINKCHG_REG); tg3_flag_set(tp, USE_LINKCHG_REG);
else else
tg3_flag_clear(tp, USE_LINKCHG_REG); tg3_flag_clear(tp, USE_LINKCHG_REG);
...@@ -15846,7 +15841,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15846,7 +15841,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
* upon subsystem IDs. * upon subsystem IDs.
*/ */
if (tp->pdev->subsystem_vendor == PCI_VENDOR_ID_DELL && if (tp->pdev->subsystem_vendor == PCI_VENDOR_ID_DELL &&
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701 && tg3_asic_rev(tp) == ASIC_REV_5701 &&
!(tp->phy_flags & TG3_PHYFLG_PHY_SERDES)) { !(tp->phy_flags & TG3_PHYFLG_PHY_SERDES)) {
tp->phy_flags |= TG3_PHYFLG_USE_MI_INTERRUPT; tp->phy_flags |= TG3_PHYFLG_USE_MI_INTERRUPT;
tg3_flag_set(tp, USE_LINKCHG_REG); tg3_flag_set(tp, USE_LINKCHG_REG);
...@@ -15860,7 +15855,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15860,7 +15855,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
tp->rx_offset = NET_SKB_PAD + NET_IP_ALIGN; tp->rx_offset = NET_SKB_PAD + NET_IP_ALIGN;
tp->rx_copy_thresh = TG3_RX_COPY_THRESHOLD; tp->rx_copy_thresh = TG3_RX_COPY_THRESHOLD;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701 && if (tg3_asic_rev(tp) == ASIC_REV_5701 &&
tg3_flag(tp, PCIX_MODE)) { tg3_flag(tp, PCIX_MODE)) {
tp->rx_offset = NET_SKB_PAD; tp->rx_offset = NET_SKB_PAD;
#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS #ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
...@@ -15877,9 +15872,9 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent) ...@@ -15877,9 +15872,9 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
/* Increment the rx prod index on the rx std ring by at most /* Increment the rx prod index on the rx std ring by at most
* 8 for these chips to workaround hw errata. * 8 for these chips to workaround hw errata.
*/ */
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 || if (tg3_asic_rev(tp) == ASIC_REV_5750 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752 || tg3_asic_rev(tp) == ASIC_REV_5752 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755) tg3_asic_rev(tp) == ASIC_REV_5755)
tp->rx_std_max_post = 8; tp->rx_std_max_post = 8;
if (tg3_flag(tp, ASPM_WORKAROUND)) if (tg3_flag(tp, ASPM_WORKAROUND))
...@@ -15934,7 +15929,7 @@ static int tg3_get_device_address(struct tg3 *tp) ...@@ -15934,7 +15929,7 @@ static int tg3_get_device_address(struct tg3 *tp)
} }
mac_offset = 0x7c; mac_offset = 0x7c;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 || if (tg3_asic_rev(tp) == ASIC_REV_5704 ||
tg3_flag(tp, 5780_CLASS)) { tg3_flag(tp, 5780_CLASS)) {
if (tr32(TG3PCI_DUAL_MAC_CTRL) & DUAL_MAC_CTRL_ID) if (tr32(TG3PCI_DUAL_MAC_CTRL) & DUAL_MAC_CTRL_ID)
mac_offset = 0xcc; mac_offset = 0xcc;
...@@ -15947,7 +15942,7 @@ static int tg3_get_device_address(struct tg3 *tp) ...@@ -15947,7 +15942,7 @@ static int tg3_get_device_address(struct tg3 *tp)
mac_offset = 0xcc; mac_offset = 0xcc;
if (tp->pci_fn > 1) if (tp->pci_fn > 1)
mac_offset += 0x18c; mac_offset += 0x18c;
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) } else if (tg3_asic_rev(tp) == ASIC_REV_5906)
mac_offset = 0x10; mac_offset = 0x10;
/* First try to get it from MAC address mailbox. */ /* First try to get it from MAC address mailbox. */
...@@ -16015,8 +16010,8 @@ static u32 tg3_calc_dma_bndry(struct tg3 *tp, u32 val) ...@@ -16015,8 +16010,8 @@ static u32 tg3_calc_dma_bndry(struct tg3 *tp, u32 val)
/* On 5703 and later chips, the boundary bits have no /* On 5703 and later chips, the boundary bits have no
* effect. * effect.
*/ */
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 && if (tg3_asic_rev(tp) != ASIC_REV_5700 &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701 && tg3_asic_rev(tp) != ASIC_REV_5701 &&
!tg3_flag(tp, PCI_EXPRESS)) !tg3_flag(tp, PCI_EXPRESS))
goto out; goto out;
...@@ -16254,14 +16249,14 @@ static int tg3_test_dma(struct tg3 *tp) ...@@ -16254,14 +16249,14 @@ static int tg3_test_dma(struct tg3 *tp)
/* DMA read watermark not used on PCIE */ /* DMA read watermark not used on PCIE */
tp->dma_rwctrl |= 0x00180000; tp->dma_rwctrl |= 0x00180000;
} else if (!tg3_flag(tp, PCIX_MODE)) { } else if (!tg3_flag(tp, PCIX_MODE)) {
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 || if (tg3_asic_rev(tp) == ASIC_REV_5705 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750) tg3_asic_rev(tp) == ASIC_REV_5750)
tp->dma_rwctrl |= 0x003f0000; tp->dma_rwctrl |= 0x003f0000;
else else
tp->dma_rwctrl |= 0x003f000f; tp->dma_rwctrl |= 0x003f000f;
} else { } else {
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 || if (tg3_asic_rev(tp) == ASIC_REV_5703 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) { tg3_asic_rev(tp) == ASIC_REV_5704) {
u32 ccval = (tr32(TG3PCI_CLOCK_CTRL) & 0x1f); u32 ccval = (tr32(TG3PCI_CLOCK_CTRL) & 0x1f);
u32 read_water = 0x7; u32 read_water = 0x7;
...@@ -16270,22 +16265,22 @@ static int tg3_test_dma(struct tg3 *tp) ...@@ -16270,22 +16265,22 @@ static int tg3_test_dma(struct tg3 *tp)
* better performance. * better performance.
*/ */
if (tg3_flag(tp, 40BIT_DMA_BUG) && if (tg3_flag(tp, 40BIT_DMA_BUG) &&
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) tg3_asic_rev(tp) == ASIC_REV_5704)
tp->dma_rwctrl |= 0x8000; tp->dma_rwctrl |= 0x8000;
else if (ccval == 0x6 || ccval == 0x7) else if (ccval == 0x6 || ccval == 0x7)
tp->dma_rwctrl |= DMA_RWCTRL_ONE_DMA; tp->dma_rwctrl |= DMA_RWCTRL_ONE_DMA;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703) if (tg3_asic_rev(tp) == ASIC_REV_5703)
read_water = 4; read_water = 4;
/* Set bit 23 to enable PCIX hw bug fix */ /* Set bit 23 to enable PCIX hw bug fix */
tp->dma_rwctrl |= tp->dma_rwctrl |=
(read_water << DMA_RWCTRL_READ_WATER_SHIFT) | (read_water << DMA_RWCTRL_READ_WATER_SHIFT) |
(0x3 << DMA_RWCTRL_WRITE_WATER_SHIFT) | (0x3 << DMA_RWCTRL_WRITE_WATER_SHIFT) |
(1 << 23); (1 << 23);
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5780) { } else if (tg3_asic_rev(tp) == ASIC_REV_5780) {
/* 5780 always in PCIX mode */ /* 5780 always in PCIX mode */
tp->dma_rwctrl |= 0x00144000; tp->dma_rwctrl |= 0x00144000;
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714) { } else if (tg3_asic_rev(tp) == ASIC_REV_5714) {
/* 5714 always in PCIX mode */ /* 5714 always in PCIX mode */
tp->dma_rwctrl |= 0x00148000; tp->dma_rwctrl |= 0x00148000;
} else { } else {
...@@ -16295,12 +16290,12 @@ static int tg3_test_dma(struct tg3 *tp) ...@@ -16295,12 +16290,12 @@ static int tg3_test_dma(struct tg3 *tp)
if (tg3_flag(tp, ONE_DMA_AT_ONCE)) if (tg3_flag(tp, ONE_DMA_AT_ONCE))
tp->dma_rwctrl |= DMA_RWCTRL_ONE_DMA; tp->dma_rwctrl |= DMA_RWCTRL_ONE_DMA;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 || if (tg3_asic_rev(tp) == ASIC_REV_5703 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) tg3_asic_rev(tp) == ASIC_REV_5704)
tp->dma_rwctrl &= 0xfffffff0; tp->dma_rwctrl &= 0xfffffff0;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) { tg3_asic_rev(tp) == ASIC_REV_5701) {
/* Remove this if it causes problems for some boards. */ /* Remove this if it causes problems for some boards. */
tp->dma_rwctrl |= DMA_RWCTRL_USE_MEM_READ_MULT; tp->dma_rwctrl |= DMA_RWCTRL_USE_MEM_READ_MULT;
...@@ -16324,8 +16319,8 @@ static int tg3_test_dma(struct tg3 *tp) ...@@ -16324,8 +16319,8 @@ static int tg3_test_dma(struct tg3 *tp)
tg3_switch_clocks(tp); tg3_switch_clocks(tp);
#endif #endif
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 && if (tg3_asic_rev(tp) != ASIC_REV_5700 &&
GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701) tg3_asic_rev(tp) != ASIC_REV_5701)
goto out; goto out;
/* It is best to perform DMA test with maximum write burst size /* It is best to perform DMA test with maximum write burst size
...@@ -16444,7 +16439,7 @@ static void tg3_init_bufmgr_config(struct tg3 *tp) ...@@ -16444,7 +16439,7 @@ static void tg3_init_bufmgr_config(struct tg3 *tp)
DEFAULT_MB_MACRX_LOW_WATER_5705; DEFAULT_MB_MACRX_LOW_WATER_5705;
tp->bufmgr_config.mbuf_high_water = tp->bufmgr_config.mbuf_high_water =
DEFAULT_MB_HIGH_WATER_5705; DEFAULT_MB_HIGH_WATER_5705;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { if (tg3_asic_rev(tp) == ASIC_REV_5906) {
tp->bufmgr_config.mbuf_mac_rx_low_water = tp->bufmgr_config.mbuf_mac_rx_low_water =
DEFAULT_MB_MACRX_LOW_WATER_5906; DEFAULT_MB_MACRX_LOW_WATER_5906;
tp->bufmgr_config.mbuf_high_water = tp->bufmgr_config.mbuf_high_water =
...@@ -16766,7 +16761,7 @@ static int tg3_init_one(struct pci_dev *pdev, ...@@ -16766,7 +16761,7 @@ static int tg3_init_one(struct pci_dev *pdev,
/* 5700 B0 chips do not support checksumming correctly due /* 5700 B0 chips do not support checksumming correctly due
* to hardware bugs. * to hardware bugs.
*/ */
if (tp->pci_chip_rev_id != CHIPREV_ID_5700_B0) { if (tg3_chip_rev_id(tp) != CHIPREV_ID_5700_B0) {
features |= NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM; features |= NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM;
if (tg3_flag(tp, 5755_PLUS)) if (tg3_flag(tp, 5755_PLUS))
...@@ -16786,11 +16781,11 @@ static int tg3_init_one(struct pci_dev *pdev, ...@@ -16786,11 +16781,11 @@ static int tg3_init_one(struct pci_dev *pdev,
if (features & NETIF_F_IPV6_CSUM) if (features & NETIF_F_IPV6_CSUM)
features |= NETIF_F_TSO6; features |= NETIF_F_TSO6;
if (tg3_flag(tp, HW_TSO_3) || if (tg3_flag(tp, HW_TSO_3) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761 || tg3_asic_rev(tp) == ASIC_REV_5761 ||
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 && (tg3_asic_rev(tp) == ASIC_REV_5784 &&
GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5784_AX) || tg3_chip_rev(tp) != CHIPREV_5784_AX) ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 || tg3_asic_rev(tp) == ASIC_REV_5785 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780) tg3_asic_rev(tp) == ASIC_REV_57780)
features |= NETIF_F_TSO_ECN; features |= NETIF_F_TSO_ECN;
} }
...@@ -16802,14 +16797,14 @@ static int tg3_init_one(struct pci_dev *pdev, ...@@ -16802,14 +16797,14 @@ static int tg3_init_one(struct pci_dev *pdev,
* MAC-LOOPBACK. Eventually this need to be enhanced to allow INT-PHY * MAC-LOOPBACK. Eventually this need to be enhanced to allow INT-PHY
* loopback for the remaining devices. * loopback for the remaining devices.
*/ */
if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5780 && if (tg3_asic_rev(tp) != ASIC_REV_5780 &&
!tg3_flag(tp, CPMU_PRESENT)) !tg3_flag(tp, CPMU_PRESENT))
/* Add the loopback capability */ /* Add the loopback capability */
features |= NETIF_F_LOOPBACK; features |= NETIF_F_LOOPBACK;
dev->hw_features |= features; dev->hw_features |= features;
if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A1 && if (tg3_chip_rev_id(tp) == CHIPREV_ID_5705_A1 &&
!tg3_flag(tp, TSO_CAPABLE) && !tg3_flag(tp, TSO_CAPABLE) &&
!(tr32(TG3PCI_PCISTATE) & PCISTATE_BUS_SPEED_HIGH)) { !(tr32(TG3PCI_PCISTATE) & PCISTATE_BUS_SPEED_HIGH)) {
tg3_flag_set(tp, MAX_RXPEND_64); tg3_flag_set(tp, MAX_RXPEND_64);
...@@ -16888,9 +16883,9 @@ static int tg3_init_one(struct pci_dev *pdev, ...@@ -16888,9 +16883,9 @@ static int tg3_init_one(struct pci_dev *pdev,
pci_set_drvdata(pdev, dev); pci_set_drvdata(pdev, dev);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || if (tg3_asic_rev(tp) == ASIC_REV_5719 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 || tg3_asic_rev(tp) == ASIC_REV_5720 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) tg3_asic_rev(tp) == ASIC_REV_5762)
tg3_flag_set(tp, PTP_CAPABLE); tg3_flag_set(tp, PTP_CAPABLE);
if (tg3_flag(tp, 5717_PLUS)) { if (tg3_flag(tp, 5717_PLUS)) {
...@@ -16910,7 +16905,7 @@ static int tg3_init_one(struct pci_dev *pdev, ...@@ -16910,7 +16905,7 @@ static int tg3_init_one(struct pci_dev *pdev,
netdev_info(dev, "Tigon3 [partno(%s) rev %04x] (%s) MAC address %pM\n", netdev_info(dev, "Tigon3 [partno(%s) rev %04x] (%s) MAC address %pM\n",
tp->board_part_number, tp->board_part_number,
tp->pci_chip_rev_id, tg3_chip_rev_id(tp),
tg3_bus_string(tp, str), tg3_bus_string(tp, str),
dev->dev_addr); dev->dev_addr);
......
...@@ -161,7 +161,7 @@ ...@@ -161,7 +161,7 @@
#define CHIPREV_ID_5719_A0 0x05719000 #define CHIPREV_ID_5719_A0 0x05719000
#define CHIPREV_ID_5720_A0 0x05720000 #define CHIPREV_ID_5720_A0 0x05720000
#define CHIPREV_ID_5762_A0 0x05762000 #define CHIPREV_ID_5762_A0 0x05762000
#define GET_ASIC_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 12)
#define ASIC_REV_5700 0x07 #define ASIC_REV_5700 0x07
#define ASIC_REV_5701 0x00 #define ASIC_REV_5701 0x00
#define ASIC_REV_5703 0x01 #define ASIC_REV_5703 0x01
...@@ -185,7 +185,6 @@ ...@@ -185,7 +185,6 @@
#define ASIC_REV_5720 0x5720 #define ASIC_REV_5720 0x5720
#define ASIC_REV_57766 0x57766 #define ASIC_REV_57766 0x57766
#define ASIC_REV_5762 0x5762 #define ASIC_REV_5762 0x5762
#define GET_CHIP_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 8)
#define CHIPREV_5700_AX 0x70 #define CHIPREV_5700_AX 0x70
#define CHIPREV_5700_BX 0x71 #define CHIPREV_5700_BX 0x71
#define CHIPREV_5700_CX 0x72 #define CHIPREV_5700_CX 0x72
...@@ -198,7 +197,6 @@ ...@@ -198,7 +197,6 @@
#define CHIPREV_5784_AX 0x57840 #define CHIPREV_5784_AX 0x57840
#define CHIPREV_5761_AX 0x57610 #define CHIPREV_5761_AX 0x57610
#define CHIPREV_57765_AX 0x577650 #define CHIPREV_57765_AX 0x577650
#define GET_METAL_REV(CHIP_REV_ID) ((CHIP_REV_ID) & 0xff)
#define METAL_REV_A0 0x00 #define METAL_REV_A0 0x00
#define METAL_REV_A1 0x01 #define METAL_REV_A1 0x01
#define METAL_REV_B0 0x00 #define METAL_REV_B0 0x00
...@@ -3357,4 +3355,18 @@ struct tg3 { ...@@ -3357,4 +3355,18 @@ struct tg3 {
bool link_up; bool link_up;
}; };
/* Accessor macros for chip and asic attributes
*
* nb: Using static inlines equivalent to the accessor macros generates
* larger object code with gcc 4.7.
* Using statement expression macros to check tp with
* typecheck(struct tg3 *, tp) also creates larger objects.
*/
#define tg3_chip_rev_id(tp) \
((tp)->pci_chip_rev_id)
#define tg3_asic_rev(tp) \
((tp)->pci_chip_rev_id >> 12)
#define tg3_chip_rev(tp) \
((tp)->pci_chip_rev_id >> 8)
#endif /* !(_T3_H) */ #endif /* !(_T3_H) */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment