|
@@ -618,7 +618,7 @@ static void tg3_write_mem(struct tg3 *tp, u32 off, u32 val)
|
|
|
{
|
|
|
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))
|
|
|
return;
|
|
|
|
|
@@ -643,7 +643,7 @@ static void tg3_read_mem(struct tg3 *tp, u32 off, u32 *val)
|
|
|
{
|
|
|
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)) {
|
|
|
*val = 0;
|
|
|
return;
|
|
@@ -671,7 +671,7 @@ static void tg3_ape_lock_init(struct tg3 *tp)
|
|
|
int i;
|
|
|
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;
|
|
|
else
|
|
|
regbase = TG3_APE_PER_LOCK_GRANT;
|
|
@@ -707,7 +707,7 @@ static int tg3_ape_lock(struct tg3 *tp, int locknum)
|
|
|
|
|
|
switch (locknum) {
|
|
|
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;
|
|
|
case TG3_APE_LOCK_GRC:
|
|
|
case TG3_APE_LOCK_MEM:
|
|
@@ -726,7 +726,7 @@ static int tg3_ape_lock(struct tg3 *tp, int locknum)
|
|
|
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;
|
|
|
gnt = TG3_APE_LOCK_GRANT;
|
|
|
} else {
|
|
@@ -764,7 +764,7 @@ static void tg3_ape_unlock(struct tg3 *tp, int locknum)
|
|
|
|
|
|
switch (locknum) {
|
|
|
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;
|
|
|
case TG3_APE_LOCK_GRC:
|
|
|
case TG3_APE_LOCK_MEM:
|
|
@@ -783,7 +783,7 @@ static void tg3_ape_unlock(struct tg3 *tp, int locknum)
|
|
|
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;
|
|
|
else
|
|
|
gnt = TG3_APE_PER_LOCK_GRANT;
|
|
@@ -1479,7 +1479,7 @@ static void tg3_mdio_start(struct tg3 *tp)
|
|
|
udelay(80);
|
|
|
|
|
|
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);
|
|
|
}
|
|
|
|
|
@@ -1494,7 +1494,7 @@ static int tg3_mdio_init(struct tg3 *tp)
|
|
|
|
|
|
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;
|
|
|
else
|
|
|
is_serdes = tr32(TG3_CPMU_PHY_STRAP) &
|
|
@@ -1582,7 +1582,7 @@ static int tg3_mdio_init(struct tg3 *tp)
|
|
|
|
|
|
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);
|
|
|
|
|
|
return 0;
|
|
@@ -1804,7 +1804,7 @@ static int tg3_poll_fw(struct tg3 *tp)
|
|
|
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. */
|
|
|
for (i = 0; i < 200; i++) {
|
|
|
if (tr32(VCPU_STATUS) & VCPU_STATUS_INIT_DONE)
|
|
@@ -1833,7 +1833,7 @@ static int tg3_poll_fw(struct tg3 *tp)
|
|
|
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
|
|
|
* time to do some important work.
|
|
|
*/
|
|
@@ -1963,7 +1963,7 @@ static void tg3_adjust_link(struct net_device *dev)
|
|
|
if (phydev->speed == SPEED_100 || phydev->speed == SPEED_10)
|
|
|
mac_mode |= MAC_MODE_PORT_MODE_MII;
|
|
|
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;
|
|
|
else
|
|
|
mac_mode |= MAC_MODE_PORT_MODE_MII;
|
|
@@ -1990,7 +1990,7 @@ static void tg3_adjust_link(struct net_device *dev)
|
|
|
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)
|
|
|
tw32(MAC_MI_STAT,
|
|
|
MAC_MI_STAT_10MBPS_MODE |
|
|
@@ -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_SDTL |
|
|
|
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;
|
|
|
|
|
|
tg3_writephy(tp, MII_TG3_MISC_SHDW, reg);
|
|
@@ -2337,8 +2337,8 @@ static void tg3_phy_eee_enable(struct tg3 *tp)
|
|
|
u32 val;
|
|
|
|
|
|
if (tp->link_config.active_speed == SPEED_1000 &&
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_5717 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5719 ||
|
|
|
tg3_flag(tp, 57765_CLASS)) &&
|
|
|
!tg3_phy_toggle_auxctl_smdsp(tp, true)) {
|
|
|
val = MII_TG3_DSP_TAP26_ALNOKO |
|
|
@@ -2542,7 +2542,7 @@ static int tg3_phy_reset(struct tg3 *tp)
|
|
|
u32 val, cpmuctrl;
|
|
|
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);
|
|
|
tw32_f(GRC_MISC_CFG, val & ~GRC_MISC_CFG_EPHY_IDDQ);
|
|
|
udelay(40);
|
|
@@ -2557,9 +2557,9 @@ static int tg3_phy_reset(struct tg3 *tp)
|
|
|
tg3_link_report(tp);
|
|
|
}
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5703 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5704 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5705) {
|
|
|
err = tg3_phy_reset_5703_4_5(tp);
|
|
|
if (err)
|
|
|
return err;
|
|
@@ -2567,8 +2567,8 @@ static int tg3_phy_reset(struct tg3 *tp)
|
|
|
}
|
|
|
|
|
|
cpmuctrl = 0;
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 &&
|
|
|
- GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5784_AX) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5784 &&
|
|
|
+ tg3_chip_rev(tp) != CHIPREV_5784_AX) {
|
|
|
cpmuctrl = tr32(TG3_CPMU_CTRL);
|
|
|
if (cpmuctrl & CPMU_CTRL_GPHY_10MB_RXONLY)
|
|
|
tw32(TG3_CPMU_CTRL,
|
|
@@ -2586,8 +2586,8 @@ static int tg3_phy_reset(struct tg3 *tp)
|
|
|
tw32(TG3_CPMU_CTRL, cpmuctrl);
|
|
|
}
|
|
|
|
|
|
- if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5784_AX ||
|
|
|
- GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5761_AX) {
|
|
|
+ if (tg3_chip_rev(tp) == CHIPREV_5784_AX ||
|
|
|
+ tg3_chip_rev(tp) == CHIPREV_5761_AX) {
|
|
|
val = tr32(TG3_CPMU_LSPD_1000MB_CLK);
|
|
|
if ((val & CPMU_LSPD_1000MB_MACCLK_MASK) ==
|
|
|
CPMU_LSPD_1000MB_MACCLK_12_5) {
|
|
@@ -2665,12 +2665,12 @@ out:
|
|
|
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 */
|
|
|
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_phy_toggle_automdix(tp, 1);
|
|
@@ -2698,8 +2698,8 @@ static inline u32 tg3_set_function_status(struct tg3 *tp, u32 newstat)
|
|
|
{
|
|
|
u32 status, shift;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5719)
|
|
|
status = tg3_ape_read32(tp, TG3_APE_GPIO_MSG);
|
|
|
else
|
|
|
status = tr32(TG3_CPMU_DRV_STATUS);
|
|
@@ -2708,8 +2708,8 @@ static inline u32 tg3_set_function_status(struct tg3 *tp, u32 newstat)
|
|
|
status &= ~(TG3_GPIO_MSG_MASK << shift);
|
|
|
status |= (newstat << shift);
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5719)
|
|
|
tg3_ape_write32(tp, TG3_APE_GPIO_MSG, status);
|
|
|
else
|
|
|
tw32(TG3_CPMU_DRV_STATUS, status);
|
|
@@ -2722,9 +2722,9 @@ static inline int tg3_pwrsrc_switch_to_vmain(struct tg3 *tp)
|
|
|
if (!tg3_flag(tp, IS_NIC))
|
|
|
return 0;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5719 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5720) {
|
|
|
if (tg3_ape_lock(tp, TG3_APE_LOCK_GPIO))
|
|
|
return -EIO;
|
|
|
|
|
@@ -2747,8 +2747,8 @@ static void tg3_pwrsrc_die_with_vmain(struct tg3 *tp)
|
|
|
u32 grc_local_ctrl;
|
|
|
|
|
|
if (!tg3_flag(tp, IS_NIC) ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5701)
|
|
|
return;
|
|
|
|
|
|
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)
|
|
|
if (!tg3_flag(tp, IS_NIC))
|
|
|
return;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5701) {
|
|
|
tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl |
|
|
|
(GRC_LCLCTRL_GPIO_OE0 |
|
|
|
GRC_LCLCTRL_GPIO_OE1 |
|
|
@@ -2804,7 +2804,7 @@ static void tg3_pwrsrc_switch_to_vaux(struct tg3 *tp)
|
|
|
u32 grc_local_ctrl = 0;
|
|
|
|
|
|
/* 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;
|
|
|
tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl |
|
|
|
grc_local_ctrl,
|
|
@@ -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))
|
|
|
return;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5719 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5720) {
|
|
|
tg3_frob_aux_power_5717(tp, include_wol ?
|
|
|
tg3_flag(tp, WOL_ENABLE) != 0 : 0);
|
|
|
return;
|
|
@@ -2930,7 +2930,7 @@ static void tg3_power_down_phy(struct tg3 *tp, bool do_low_power)
|
|
|
u32 val;
|
|
|
|
|
|
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 serdes_cfg = tr32(MAC_SERDES_CFG);
|
|
|
|
|
@@ -2942,7 +2942,7 @@ static void tg3_power_down_phy(struct tg3 *tp, bool do_low_power)
|
|
|
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);
|
|
|
val = tr32(GRC_MISC_CFG);
|
|
|
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)
|
|
|
/* The PHY should not be powered down on some chips because
|
|
|
* of bugs.
|
|
|
*/
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 ||
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5780 &&
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5704 ||
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_5780 &&
|
|
|
(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))
|
|
|
return;
|
|
|
|
|
|
- if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5784_AX ||
|
|
|
- GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5761_AX) {
|
|
|
+ if (tg3_chip_rev(tp) == CHIPREV_5784_AX ||
|
|
|
+ tg3_chip_rev(tp) == CHIPREV_5761_AX) {
|
|
|
val = tr32(TG3_CPMU_LSPD_1000MB_CLK);
|
|
|
val &= ~CPMU_LSPD_1000MB_MACCLK_MASK;
|
|
|
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,
|
|
|
!tg3_flag(tp, 57765_PLUS))
|
|
|
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) &&
|
|
|
(tp->nvram_jedecnum == JEDEC_ST) &&
|
|
|
(nvram_cmd & NVRAM_CMD_FIRST)) {
|
|
@@ -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));
|
|
|
|
|
|
- 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);
|
|
|
|
|
|
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)
|
|
|
info.fw_len = tp->fw->size - 12;
|
|
|
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_scratch_base = NIC_SRAM_MBUF_POOL_BASE5705;
|
|
|
} else {
|
|
@@ -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);
|
|
|
}
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5703 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5704) {
|
|
|
for (i = 0; i < 12; i++) {
|
|
|
tw32(MAC_EXTADDR_0_HIGH + (i * 8), addr_high);
|
|
|
tw32(MAC_EXTADDR_0_LOW + (i * 8), addr_low);
|
|
@@ -3814,7 +3814,7 @@ static int tg3_power_down_prepare(struct tg3 *tp)
|
|
|
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;
|
|
|
|
|
|
val = tr32(GRC_VCPU_EXT_CTRL);
|
|
@@ -3856,8 +3856,7 @@ static int tg3_power_down_prepare(struct tg3 *tp)
|
|
|
mac_mode = MAC_MODE_PORT_MODE_MII;
|
|
|
|
|
|
mac_mode |= tp->mac_mode & MAC_MODE_LINK_POLARITY;
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) ==
|
|
|
- ASIC_REV_5700) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5700) {
|
|
|
u32 speed = tg3_flag(tp, WOL_SPEED_100MB) ?
|
|
|
SPEED_100 : SPEED_10;
|
|
|
if (tg3_5700_link_polarity(tp, speed))
|
|
@@ -3890,8 +3889,8 @@ static int tg3_power_down_prepare(struct tg3 *tp)
|
|
|
}
|
|
|
|
|
|
if (!tg3_flag(tp, WOL_SPEED_100MB) &&
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)) {
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5701)) {
|
|
|
u32 base_val;
|
|
|
|
|
|
base_val = tp->pci_clock_ctrl;
|
|
@@ -3902,13 +3901,13 @@ static int tg3_power_down_prepare(struct tg3 *tp)
|
|
|
CLOCK_CTRL_PWRDOWN_PLL133, 40);
|
|
|
} else if (tg3_flag(tp, 5780_CLASS) ||
|
|
|
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 */
|
|
|
} else if (!(tg3_flag(tp, 5750_PLUS) && tg3_flag(tp, ENABLE_ASF))) {
|
|
|
u32 newbits1, newbits2;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5701) {
|
|
|
newbits1 = (CLOCK_CTRL_RXCLK_DISABLE |
|
|
|
CLOCK_CTRL_TXCLK_DISABLE |
|
|
|
CLOCK_CTRL_ALTCLK);
|
|
@@ -3930,8 +3929,8 @@ static int tg3_power_down_prepare(struct tg3 *tp)
|
|
|
if (!tg3_flag(tp, 5705_PLUS)) {
|
|
|
u32 newbits3;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5701) {
|
|
|
newbits3 = (CLOCK_CTRL_RXCLK_DISABLE |
|
|
|
CLOCK_CTRL_TXCLK_DISABLE |
|
|
|
CLOCK_CTRL_44MHZ_CORE);
|
|
@@ -3951,8 +3950,8 @@ static int tg3_power_down_prepare(struct tg3 *tp)
|
|
|
|
|
|
/* Workaround for unstable PLL clock */
|
|
|
if ((!tg3_flag(tp, IS_SSB_CORE)) &&
|
|
|
- ((GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_AX) ||
|
|
|
- (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_BX))) {
|
|
|
+ ((tg3_chip_rev(tp) == CHIPREV_5750_AX) ||
|
|
|
+ (tg3_chip_rev(tp) == CHIPREV_5750_BX))) {
|
|
|
u32 val = tr32(0x7d00);
|
|
|
|
|
|
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)
|
|
|
if (!(tp->phy_flags & TG3_PHYFLG_10_100_ONLY)) {
|
|
|
new_adv = ethtool_adv_to_mii_ctrl1000_t(advertise);
|
|
|
|
|
|
- if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5701_B0)
|
|
|
+ if (tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B0)
|
|
|
new_adv |= CTL1000_AS_MASTER | CTL1000_ENABLE_MASTER;
|
|
|
|
|
|
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)
|
|
|
if (err)
|
|
|
val = 0;
|
|
|
|
|
|
- switch (GET_ASIC_REV(tp->pci_chip_rev_id)) {
|
|
|
+ switch (tg3_asic_rev(tp)) {
|
|
|
case ASIC_REV_5717:
|
|
|
case ASIC_REV_57765:
|
|
|
case ASIC_REV_57766:
|
|
@@ -4221,8 +4220,8 @@ static bool tg3_phy_copper_an_config_ok(struct tg3 *tp, u32 *lcladv)
|
|
|
return false;
|
|
|
|
|
|
if (tgtadv &&
|
|
|
- (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5701_B0)) {
|
|
|
+ (tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B0)) {
|
|
|
tgtadv |= CTL1000_AS_MASTER | CTL1000_ENABLE_MASTER;
|
|
|
tg3_ctrl &= (ADVERTISE_1000HALF | ADVERTISE_1000FULL |
|
|
|
CTL1000_AS_MASTER | CTL1000_ENABLE_MASTER);
|
|
@@ -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
|
|
|
* down.
|
|
|
*/
|
|
|
- if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) &&
|
|
|
+ if ((tg3_asic_rev(tp) == ASIC_REV_5703 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5704 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5705) &&
|
|
|
tp->link_up) {
|
|
|
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)
|
|
|
return err;
|
|
|
}
|
|
|
}
|
|
|
- } else if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5701_B0) {
|
|
|
+ } else if (tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B0) {
|
|
|
/* 5701 {A0,B0} CRC bug workaround */
|
|
|
tg3_writephy(tp, 0x15, 0x0a75);
|
|
|
tg3_writephy(tp, MII_TG3_MISC_SHDW, 0x8c68);
|
|
@@ -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))
|
|
|
tg3_writephy(tp, MII_TG3_IMASK, ~0);
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5701) {
|
|
|
if (tp->led_ctrl == LED_CTRL_MODE_PHY_1)
|
|
|
tg3_writephy(tp, MII_TG3_EXT_CTRL,
|
|
|
MII_TG3_EXT_CTRL_LNK3_LED_MODE);
|
|
@@ -4524,7 +4523,7 @@ relink:
|
|
|
if (tp->link_config.active_duplex == DUPLEX_HALF)
|
|
|
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 &&
|
|
|
tg3_5700_link_polarity(tp, tp->link_config.active_speed))
|
|
|
tp->mac_mode |= MAC_MODE_LINK_POLARITY;
|
|
@@ -4536,7 +4535,7 @@ relink:
|
|
|
* ??? send/receive packets...
|
|
|
*/
|
|
|
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;
|
|
|
tw32_f(MAC_MI_MODE, tp->mi_mode);
|
|
|
udelay(80);
|
|
@@ -4555,7 +4554,7 @@ relink:
|
|
|
}
|
|
|
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 &&
|
|
|
tp->link_config.active_speed == SPEED_1000 &&
|
|
|
(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)
|
|
|
port_a = 1;
|
|
|
current_link_up = 0;
|
|
|
|
|
|
- if (tp->pci_chip_rev_id != CHIPREV_ID_5704_A0 &&
|
|
|
- tp->pci_chip_rev_id != CHIPREV_ID_5704_A1) {
|
|
|
+ if (tg3_chip_rev_id(tp) != CHIPREV_ID_5704_A0 &&
|
|
|
+ tg3_chip_rev_id(tp) != CHIPREV_ID_5704_A1) {
|
|
|
workaround = 1;
|
|
|
if (tr32(TG3PCI_DUAL_MAC_CTRL) & DUAL_MAC_CTRL_ID)
|
|
|
port_a = 0;
|
|
@@ -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);
|
|
|
- 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)
|
|
|
bmsr |= BMSR_LSTATUS;
|
|
|
else
|
|
@@ -5409,8 +5408,7 @@ static int tg3_setup_fiber_mii_phy(struct tg3 *tp, int force_reset)
|
|
|
bmcr = new_bmcr;
|
|
|
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)
|
|
|
bmsr |= BMSR_LSTATUS;
|
|
|
else
|
|
@@ -5545,7 +5543,7 @@ static int tg3_setup_phy(struct tg3 *tp, int force_reset)
|
|
|
else
|
|
|
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;
|
|
|
|
|
|
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)
|
|
|
|
|
|
val = (2 << TX_LENGTHS_IPG_CRS_SHIFT) |
|
|
|
(6 << TX_LENGTHS_IPG_SHIFT);
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762)
|
|
|
val |= tr32(MAC_TX_LENGTHS) &
|
|
|
(TX_LENGTHS_JMB_FRM_LEN_MSK |
|
|
|
TX_LENGTHS_CNT_DWN_VAL_MSK);
|
|
@@ -7188,7 +7186,7 @@ static int tigon3_dma_hwbug_workaround(struct tg3_napi *tnapi,
|
|
|
dma_addr_t new_addr = 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);
|
|
|
else {
|
|
|
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)
|
|
|
} else if (tg3_flag(tp, HW_TSO_2))
|
|
|
mss |= hdr_len << 9;
|
|
|
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) {
|
|
|
int tsflags;
|
|
|
|
|
@@ -7518,7 +7516,7 @@ static void tg3_mac_loopback(struct tg3 *tp, bool enable)
|
|
|
|
|
|
if (tg3_flag(tp, 5705_PLUS) ||
|
|
|
(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;
|
|
|
}
|
|
|
|
|
@@ -7577,7 +7575,7 @@ static int tg3_phy_lpbk_set(struct tg3 *tp, u32 speed, bool extlpbk)
|
|
|
udelay(40);
|
|
|
|
|
|
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 |
|
|
|
MII_TG3_FET_PTEST_FRC_TX_LINK |
|
|
|
MII_TG3_FET_PTEST_FRC_TX_LOCK);
|
|
@@ -7601,7 +7599,7 @@ static int tg3_phy_lpbk_set(struct tg3 *tp, u32 speed, bool extlpbk)
|
|
|
else
|
|
|
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;
|
|
|
|
|
|
if (masked_phy_id == TG3_PHY_ID_BCM5401)
|
|
@@ -8279,7 +8277,7 @@ static void tg3_restore_pci_state(struct tg3 *tp)
|
|
|
|
|
|
/* Set MAX PCI retry to zero. */
|
|
|
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))
|
|
|
val |= PCISTATE_RETRY_SAME_DMA;
|
|
|
/* Allow reads and writes to the APE register and memory space. */
|
|
@@ -8351,7 +8349,7 @@ static int tg3_chip_reset(struct tg3 *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))
|
|
|
tw32(GRC_FASTBOOT_PC, 0);
|
|
|
|
|
@@ -8386,7 +8384,7 @@ static int tg3_chip_reset(struct tg3 *tp)
|
|
|
for (i = 0; i < tp->irq_cnt; i++)
|
|
|
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;
|
|
|
tw32(TG3_PCIE_LNKCTL, val | TG3_PCIE_LNKCTL_L1_PLL_PD_DIS);
|
|
|
}
|
|
@@ -8396,19 +8394,19 @@ static int tg3_chip_reset(struct tg3 *tp)
|
|
|
|
|
|
if (tg3_flag(tp, PCI_EXPRESS)) {
|
|
|
/* 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) &&
|
|
|
tr32(TG3_PCIE_PHY_TSTCTL) ==
|
|
|
(TG3_PCIE_PHY_TSTCTL_PCIE10 | 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));
|
|
|
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(GRC_VCPU_EXT_CTRL,
|
|
|
tr32(GRC_VCPU_EXT_CTRL) & ~GRC_VCPU_EXT_CTRL_HALT_CPU);
|
|
@@ -8451,7 +8449,7 @@ static int tg3_chip_reset(struct tg3 *tp)
|
|
|
if (tg3_flag(tp, PCI_EXPRESS) && pci_is_pcie(tp->pdev)) {
|
|
|
u16 val16;
|
|
|
|
|
|
- if (tp->pci_chip_rev_id == CHIPREV_ID_5750_A0) {
|
|
|
+ if (tg3_chip_rev_id(tp) == CHIPREV_ID_5750_A0) {
|
|
|
int j;
|
|
|
u32 cfg_val;
|
|
|
|
|
@@ -8492,7 +8490,7 @@ static int tg3_chip_reset(struct tg3 *tp)
|
|
|
val = tr32(MEMARB_MODE);
|
|
|
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);
|
|
|
tw32(0x5000, 0x400);
|
|
|
}
|
|
@@ -8509,16 +8507,16 @@ static int tg3_chip_reset(struct tg3 *tp)
|
|
|
|
|
|
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);
|
|
|
|
|
|
tw32(0xc4, val | (1 << 15));
|
|
|
}
|
|
|
|
|
|
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;
|
|
|
- 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;
|
|
|
tw32(TG3PCI_CLOCK_CTRL, tp->pci_clock_ctrl);
|
|
|
}
|
|
@@ -8544,15 +8542,15 @@ static int tg3_chip_reset(struct tg3 *tp)
|
|
|
tg3_mdio_start(tp);
|
|
|
|
|
|
if (tg3_flag(tp, PCI_EXPRESS) &&
|
|
|
- tp->pci_chip_rev_id != CHIPREV_ID_5750_A0 &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5785 &&
|
|
|
+ tg3_chip_rev_id(tp) != CHIPREV_ID_5750_A0 &&
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_5785 &&
|
|
|
!tg3_flag(tp, 57765_PLUS)) {
|
|
|
val = tr32(0x7c00);
|
|
|
|
|
|
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);
|
|
|
tw32(TG3_CPMU_CLCK_ORIDE, val & ~CPMU_CLCK_ORIDE_MAC_ORIDE_EN);
|
|
|
}
|
|
@@ -8764,7 +8762,7 @@ static void tg3_rings_reset(struct tg3 *tp)
|
|
|
else if (tg3_flag(tp, 5717_PLUS))
|
|
|
limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 4;
|
|
|
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;
|
|
|
else
|
|
|
limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE;
|
|
@@ -8780,8 +8778,8 @@ static void tg3_rings_reset(struct tg3 *tp)
|
|
|
limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 17;
|
|
|
else if (!tg3_flag(tp, 5705_PLUS))
|
|
|
limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 16;
|
|
|
- else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762 ||
|
|
|
+ else if (tg3_asic_rev(tp) == ASIC_REV_5755 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762 ||
|
|
|
tg3_flag(tp, 57765_CLASS))
|
|
|
limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 4;
|
|
|
else
|
|
@@ -8887,12 +8885,12 @@ static void tg3_setup_rxbd_thresholds(struct tg3 *tp)
|
|
|
|
|
|
if (!tg3_flag(tp, 5750_PLUS) ||
|
|
|
tg3_flag(tp, 5780_CLASS) ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5750 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5752 ||
|
|
|
tg3_flag(tp, 57765_PLUS))
|
|
|
bdcache_maxcnt = TG3_SRAM_RX_STD_BDCACHE_SIZE_5700;
|
|
|
- else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787)
|
|
|
+ else if (tg3_asic_rev(tp) == ASIC_REV_5755 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5787)
|
|
|
bdcache_maxcnt = TG3_SRAM_RX_STD_BDCACHE_SIZE_5755;
|
|
|
else
|
|
|
bdcache_maxcnt = TG3_SRAM_RX_STD_BDCACHE_SIZE_5906;
|
|
@@ -9074,7 +9072,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
if (tp->phy_flags & TG3_PHYFLG_EEE_CAP) {
|
|
|
val = TG3_CPMU_EEE_LNKIDL_PCIE_NL0 |
|
|
|
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;
|
|
|
|
|
|
tw32_f(TG3_CPMU_EEE_LNKIDL_CTRL, val);
|
|
@@ -9087,7 +9085,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
TG3_CPMU_EEEMD_LPI_IN_RX |
|
|
|
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;
|
|
|
|
|
|
if (tg3_flag(tp, ENABLE_APE))
|
|
@@ -9113,7 +9111,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
|
|
|
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 &= ~(CPMU_CTRL_LINK_AWARE_MODE | CPMU_CTRL_LINK_IDLE_MODE);
|
|
|
tw32(TG3_CPMU_CTRL, val);
|
|
@@ -9134,7 +9132,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
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 |= PCIE_PWR_MGMT_EXT_ASPM_TMR_EN |
|
|
|
PCIE_PWR_MGMT_L1_THRESH_4MS;
|
|
@@ -9164,7 +9162,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
}
|
|
|
|
|
|
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);
|
|
|
|
|
|
/* Access the lower 1K of PL PCIE block registers. */
|
|
@@ -9179,7 +9177,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
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;
|
|
|
|
|
|
/* Fix transmit hangs */
|
|
@@ -9219,7 +9217,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
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)) {
|
|
|
val = tr32(TG3PCI_PCISTATE);
|
|
|
val |= PCISTATE_RETRY_SAME_DMA;
|
|
@@ -9237,7 +9235,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
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. */
|
|
|
val = tr32(TG3PCI_MSI_DATA);
|
|
|
val |= (1 << 26) | (1 << 28) | (1 << 29);
|
|
@@ -9256,15 +9254,15 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
if (tg3_flag(tp, 57765_PLUS)) {
|
|
|
val = tr32(TG3PCI_DMA_RW_CTRL) &
|
|
|
~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;
|
|
|
if (!tg3_flag(tp, 57765_CLASS) &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717 &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5762)
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_5717 &&
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_5762)
|
|
|
val |= DMA_RWCTRL_TAGGED_STAT_WA;
|
|
|
tw32(TG3PCI_DMA_RW_CTRL, val | tp->dma_rwctrl);
|
|
|
- } else if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5784 &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5761) {
|
|
|
+ } else if (tg3_asic_rev(tp) != ASIC_REV_5784 &&
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_5761) {
|
|
|
/* This value is determined during the probe time DMA
|
|
|
* engine test, tg3_test_dma.
|
|
|
*/
|
|
@@ -9304,9 +9302,9 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
/* Initialize MBUF/DESC pool. */
|
|
|
if (tg3_flag(tp, 5750_PLUS)) {
|
|
|
/* 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);
|
|
|
- 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);
|
|
|
else
|
|
|
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)
|
|
|
tp->bufmgr_config.dma_high_water);
|
|
|
|
|
|
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;
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5719_A0 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5720_A0)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5719_A0 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5720_A0)
|
|
|
val |= BUFMGR_MODE_MBLOW_ATTN_ENAB;
|
|
|
tw32(BUFMGR_MODE, val);
|
|
|
for (i = 0; i < 2000; i++) {
|
|
@@ -9361,7 +9359,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
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);
|
|
|
|
|
|
tg3_setup_rxbd_thresholds(tp);
|
|
@@ -9399,7 +9397,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
/* Program the jumbo buffer descriptor ring control
|
|
|
* 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))) {
|
|
|
|
|
|
if (tg3_flag(tp, JUMBO_RING_ENABLE)) {
|
|
@@ -9413,7 +9411,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
val | BDINFO_FLAGS_USE_EXT_RECV);
|
|
|
if (!tg3_flag(tp, USE_JUMBO_BDFLAG) ||
|
|
|
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,
|
|
|
NIC_SRAM_RX_JUMBO_BUFFER_DESC);
|
|
|
} else {
|
|
@@ -9455,8 +9453,8 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
(6 << TX_LENGTHS_IPG_SHIFT) |
|
|
|
(32 << TX_LENGTHS_SLOT_TIME_SHIFT);
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762)
|
|
|
val |= tr32(MAC_TX_LENGTHS) &
|
|
|
(TX_LENGTHS_JMB_FRM_LEN_MSK |
|
|
|
TX_LENGTHS_CNT_DWN_VAL_MSK);
|
|
@@ -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_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;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5784 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5785 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_57780)
|
|
|
rdmac_mode |= RDMAC_MODE_BD_SBD_CRPT_ENAB |
|
|
|
RDMAC_MODE_MBUF_RBD_CRPT_ENAB |
|
|
|
RDMAC_MODE_MBUF_SBD_CRPT_ENAB;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 &&
|
|
|
- tp->pci_chip_rev_id != CHIPREV_ID_5705_A0) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5705 &&
|
|
|
+ tg3_chip_rev_id(tp) != CHIPREV_ID_5705_A0) {
|
|
|
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;
|
|
|
} else if (!(tr32(TG3PCI_PCISTATE) & PCISTATE_BUS_SPEED_HIGH) &&
|
|
|
!tg3_flag(tp, IS_5788)) {
|
|
@@ -9500,7 +9498,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
if (tg3_flag(tp, PCI_EXPRESS))
|
|
|
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;
|
|
|
if (tp->dev->mtu <= ETH_DATA_LEN) {
|
|
|
rdmac_mode |= RDMAC_MODE_JMB_2K_MMRR;
|
|
@@ -9514,29 +9512,29 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
rdmac_mode |= RDMAC_MODE_IPV4_LSO_EN;
|
|
|
|
|
|
if (tg3_flag(tp, 57765_PLUS) ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780)
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5785 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_57780)
|
|
|
rdmac_mode |= RDMAC_MODE_IPV6_LSO_EN;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762)
|
|
|
rdmac_mode |= tr32(RDMAC_MODE) & RDMAC_MODE_H2BNC_VLAN_DET;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 ||
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5761 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5784 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5785 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_57780 ||
|
|
|
tg3_flag(tp, 57765_PLUS)) {
|
|
|
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;
|
|
|
else
|
|
|
tgtreg = TG3_RDMA_RSRVCTRL_REG;
|
|
|
|
|
|
val = tr32(tgtreg);
|
|
|
- if (tp->pci_chip_rev_id == CHIPREV_ID_5719_A0 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) {
|
|
|
+ if (tg3_chip_rev_id(tp) == CHIPREV_ID_5719_A0 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762) {
|
|
|
val &= ~(TG3_RDMA_RSRVCTRL_TXMRGN_MASK |
|
|
|
TG3_RDMA_RSRVCTRL_FIFO_LWM_MASK |
|
|
|
TG3_RDMA_RSRVCTRL_FIFO_HWM_MASK);
|
|
@@ -9547,12 +9545,12 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
tw32(tgtreg, val | TG3_RDMA_RSRVCTRL_FIFO_OFLW_FIX);
|
|
|
}
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5719 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5720 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762) {
|
|
|
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;
|
|
|
else
|
|
|
tgtreg = TG3_LSO_RD_DMA_CRPTEN_CTRL;
|
|
@@ -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;
|
|
|
if (!tg3_flag(tp, 5705_PLUS) &&
|
|
|
!(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;
|
|
|
tw32_f(MAC_MODE, tp->mac_mode | MAC_MODE_RXSTAT_CLEAR | MAC_MODE_TXSTAT_CLEAR);
|
|
|
udelay(40);
|
|
@@ -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_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 |
|
|
|
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;
|
|
|
|
|
|
tp->grc_local_ctrl &= ~gpio_mask;
|
|
@@ -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_LNGREAD_ENAB);
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 &&
|
|
|
- tp->pci_chip_rev_id != CHIPREV_ID_5705_A0) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5705 &&
|
|
|
+ tg3_chip_rev_id(tp) != CHIPREV_ID_5705_A0) {
|
|
|
if (tg3_flag(tp, TSO_CAPABLE) &&
|
|
|
- (tp->pci_chip_rev_id == CHIPREV_ID_5705_A1 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5705_A2)) {
|
|
|
+ (tg3_chip_rev_id(tp) == CHIPREV_ID_5705_A1 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5705_A2)) {
|
|
|
/* nothing */
|
|
|
} else if (!(tr32(TG3PCI_PCISTATE) & PCISTATE_BUS_SPEED_HIGH) &&
|
|
|
!tg3_flag(tp, IS_5788)) {
|
|
@@ -9708,7 +9706,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
if (tg3_flag(tp, 5755_PLUS))
|
|
|
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;
|
|
|
|
|
|
tw32_f(WDMAC_MODE, val);
|
|
@@ -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,
|
|
|
&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_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_READ_2K;
|
|
|
}
|
|
@@ -9733,7 +9731,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
tw32_f(RDMAC_MODE, rdmac_mode);
|
|
|
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++) {
|
|
|
if (tr32(TG3_RDMA_LENGTH + (i << 2)) > TG3_MAX_MTU(tp))
|
|
|
break;
|
|
@@ -9750,7 +9748,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
if (!tg3_flag(tp, 5705_PLUS))
|
|
|
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,
|
|
|
SNDDATAC_MODE_ENABLE | SNDDATAC_MODE_CDELAY);
|
|
|
else
|
|
@@ -9773,7 +9771,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
tw32(SNDBDI_MODE, val);
|
|
|
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);
|
|
|
if (err)
|
|
|
return err;
|
|
@@ -9788,11 +9786,11 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
tp->tx_mode = TX_MODE_ENABLE;
|
|
|
|
|
|
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;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762) {
|
|
|
val = TX_MODE_JMB_FRM_LEN | TX_MODE_CNT_DN_MODE;
|
|
|
tp->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)
|
|
|
udelay(10);
|
|
|
|
|
|
if (tp->phy_flags & TG3_PHYFLG_PHY_SERDES) {
|
|
|
- if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) &&
|
|
|
- !(tp->phy_flags & TG3_PHYFLG_SERDES_PREEMPHASIS)) {
|
|
|
+ if ((tg3_asic_rev(tp) == ASIC_REV_5704) &&
|
|
|
+ !(tp->phy_flags & TG3_PHYFLG_SERDES_PREEMPHASIS)) {
|
|
|
/* Set drive transmission level to 1.2V */
|
|
|
/* only if the signal pre-emphasis bit is not set */
|
|
|
val = tr32(MAC_SERDES_CFG);
|
|
@@ -9852,7 +9850,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
val |= 0x880;
|
|
|
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);
|
|
|
}
|
|
|
|
|
@@ -9865,14 +9863,14 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
val = 2;
|
|
|
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)) {
|
|
|
/* Use hardware link auto-negotiation */
|
|
|
tg3_flag_set(tp, HW_AUTONEG);
|
|
|
}
|
|
|
|
|
|
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;
|
|
|
|
|
|
tmp = tr32(SERDES_RX_CTRL);
|
|
@@ -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->rxbds_empty, RCVLPC_NO_RCV_BD_CNT);
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717 &&
|
|
|
- tp->pci_chip_rev_id != CHIPREV_ID_5719_A0 &&
|
|
|
- tp->pci_chip_rev_id != CHIPREV_ID_5720_A0) {
|
|
|
+ if (tg3_asic_rev(tp) != ASIC_REV_5717 &&
|
|
|
+ tg3_chip_rev_id(tp) != CHIPREV_ID_5719_A0 &&
|
|
|
+ tg3_chip_rev_id(tp) != CHIPREV_ID_5720_A0) {
|
|
|
TG3_STAT_ADD32(&sp->rx_discards, RCVLPC_IN_DISCARDS_CNT);
|
|
|
} else {
|
|
|
u32 val = tr32(HOSTCC_FLOW_ATTN);
|
|
@@ -10176,7 +10174,7 @@ static void tg3_timer(unsigned long __opaque)
|
|
|
|
|
|
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_chk_missed_msi(tp);
|
|
|
|
|
@@ -10302,7 +10300,7 @@ restart_timer:
|
|
|
static void tg3_timer_init(struct tg3 *tp)
|
|
|
{
|
|
|
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))
|
|
|
tp->timer_offset = HZ;
|
|
|
else
|
|
@@ -10883,7 +10881,7 @@ static int tg3_open(struct net_device *dev)
|
|
|
|
|
|
if (tp->fw_needed) {
|
|
|
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)
|
|
|
return err;
|
|
|
} else if (err) {
|
|
@@ -10953,8 +10951,8 @@ static u64 tg3_calc_crc_errors(struct tg3 *tp)
|
|
|
struct tg3_hw_stats *hw_stats = tp->hw_stats;
|
|
|
|
|
|
if (!(tp->phy_flags & TG3_PHYFLG_PHY_SERDES) &&
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)) {
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5701)) {
|
|
|
u32 val;
|
|
|
|
|
|
if (!tg3_readphy(tp, MII_TG3_TEST1, &val)) {
|
|
@@ -12479,11 +12477,11 @@ static int tg3_test_memory(struct tg3 *tp)
|
|
|
if (tg3_flag(tp, 5717_PLUS))
|
|
|
mem_tbl = mem_tbl_5717;
|
|
|
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;
|
|
|
else if (tg3_flag(tp, 5755_PLUS))
|
|
|
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;
|
|
|
else if (tg3_flag(tp, 5705_PLUS))
|
|
|
mem_tbl = mem_tbl_5705;
|
|
@@ -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))
|
|
|
mss |= hdr_len << 9;
|
|
|
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);
|
|
|
} else {
|
|
|
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)
|
|
|
* errata. Also, the MAC loopback test is deprecated for
|
|
|
* 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_mac_loopback(tp, true);
|
|
|
|
|
@@ -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
|
|
|
* 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;
|
|
|
|
|
|
err = tg3_restart_hw(tp, reset_phy);
|
|
@@ -13381,7 +13379,7 @@ static void tg3_get_nvram_info(struct tg3 *tp)
|
|
|
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)) {
|
|
|
switch (nvcfg1 & NVRAM_CFG1_VENDOR_MASK) {
|
|
|
case FLASH_VENDOR_ATMEL_FLASH_BUFFERED:
|
|
@@ -13822,7 +13820,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp)
|
|
|
nvcfg1 = tr32(NVRAM_CFG1);
|
|
|
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)) {
|
|
|
tg3_flag_set(tp, NO_NVRAM);
|
|
|
return;
|
|
@@ -13883,7 +13881,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp)
|
|
|
tp->nvram_size = TG3_NVRAM_SIZE_1MB;
|
|
|
break;
|
|
|
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;
|
|
|
break;
|
|
|
}
|
|
@@ -13930,7 +13928,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp)
|
|
|
tp->nvram_size = TG3_NVRAM_SIZE_1MB;
|
|
|
break;
|
|
|
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;
|
|
|
break;
|
|
|
}
|
|
@@ -13944,7 +13942,7 @@ static void tg3_get_5720_nvram_info(struct tg3 *tp)
|
|
|
if (tp->nvram_pagesize != 264 && tp->nvram_pagesize != 528)
|
|
|
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;
|
|
|
|
|
|
if (tg3_nvram_read(tp, 0, &val))
|
|
@@ -13979,8 +13977,8 @@ static void tg3_nvram_init(struct tg3 *tp)
|
|
|
tr32(GRC_LOCAL_CTRL) | GRC_LCLCTRL_AUTO_SEEPROM);
|
|
|
udelay(100);
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701) {
|
|
|
+ if (tg3_asic_rev(tp) != ASIC_REV_5700 &&
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_5701) {
|
|
|
tg3_flag_set(tp, NVRAM);
|
|
|
|
|
|
if (tg3_nvram_lock(tp)) {
|
|
@@ -13993,26 +13991,26 @@ static void tg3_nvram_init(struct tg3 *tp)
|
|
|
|
|
|
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);
|
|
|
- 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);
|
|
|
- else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785)
|
|
|
+ else if (tg3_asic_rev(tp) == ASIC_REV_5787 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5784 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5785)
|
|
|
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);
|
|
|
- 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);
|
|
|
- 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_get_57780_nvram_info(tp);
|
|
|
- else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
|
|
|
+ else if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5719)
|
|
|
tg3_get_5717_nvram_info(tp);
|
|
|
- else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762)
|
|
|
+ else if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762)
|
|
|
tg3_get_5720_nvram_info(tp);
|
|
|
else
|
|
|
tg3_get_nvram_info(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, 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)) {
|
|
|
tg3_flag_clear(tp, EEPROM_WRITE_PROT);
|
|
|
tg3_flag_set(tp, IS_NIC);
|
|
@@ -14152,13 +14150,13 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp)
|
|
|
|
|
|
tg3_read_mem(tp, NIC_SRAM_DATA_VER, &ver);
|
|
|
ver >>= NIC_SRAM_DATA_VER_SHIFT;
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701 &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5703 &&
|
|
|
+ if (tg3_asic_rev(tp) != ASIC_REV_5700 &&
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_5701 &&
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_5703 &&
|
|
|
(ver > 0) && (ver < 0x100))
|
|
|
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);
|
|
|
|
|
|
if ((nic_cfg & NIC_SRAM_DATA_CFG_PHY_TYPE_MASK) ==
|
|
@@ -14206,18 +14204,16 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp)
|
|
|
/* Default to PHY_1_MODE if 0 (MAC_MODE) is
|
|
|
* read on some older 5700/5701 bootcode.
|
|
|
*/
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) ==
|
|
|
- ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) ==
|
|
|
- ASIC_REV_5701)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5701)
|
|
|
tp->led_ctrl = LED_CTRL_MODE_PHY_1;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case SHASTA_EXT_LED_SHARED:
|
|
|
tp->led_ctrl = LED_CTRL_MODE_SHARED;
|
|
|
- if (tp->pci_chip_rev_id != CHIPREV_ID_5750_A0 &&
|
|
|
- tp->pci_chip_rev_id != CHIPREV_ID_5750_A1)
|
|
|
+ if (tg3_chip_rev_id(tp) != CHIPREV_ID_5750_A0 &&
|
|
|
+ tg3_chip_rev_id(tp) != CHIPREV_ID_5750_A1)
|
|
|
tp->led_ctrl |= (LED_CTRL_MODE_PHY_1 |
|
|
|
LED_CTRL_MODE_PHY_2);
|
|
|
break;
|
|
@@ -14228,19 +14224,19 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp)
|
|
|
|
|
|
case SHASTA_EXT_LED_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 |
|
|
|
LED_CTRL_MODE_PHY_2);
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
- if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) &&
|
|
|
+ if ((tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5701) &&
|
|
|
tp->pdev->subsystem_vendor == PCI_VENDOR_ID_DELL)
|
|
|
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;
|
|
|
|
|
|
if (nic_cfg & NIC_SRAM_DATA_CFG_EEPROM_WP) {
|
|
@@ -14284,13 +14280,13 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp)
|
|
|
tp->phy_flags |= TG3_PHYFLG_SERDES_PREEMPHASIS;
|
|
|
|
|
|
if ((tg3_flag(tp, 57765_PLUS) ||
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 &&
|
|
|
- GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5784_AX)) &&
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_5784 &&
|
|
|
+ tg3_chip_rev(tp) != CHIPREV_5784_AX)) &&
|
|
|
(cfg2 & NIC_SRAM_DATA_CFG_2_APD_EN))
|
|
|
tp->phy_flags |= TG3_PHYFLG_ENABLE_APD;
|
|
|
|
|
|
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)) {
|
|
|
u32 cfg3;
|
|
|
|
|
@@ -14513,13 +14509,13 @@ static int tg3_phy_probe(struct tg3 *tp)
|
|
|
}
|
|
|
|
|
|
if (!(tp->phy_flags & TG3_PHYFLG_ANY_SERDES) &&
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762 ||
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 &&
|
|
|
- tp->pci_chip_rev_id != CHIPREV_ID_5717_A0) ||
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765 &&
|
|
|
- tp->pci_chip_rev_id != CHIPREV_ID_57765_A0)))
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_5719 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5720 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762 ||
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_5717 &&
|
|
|
+ tg3_chip_rev_id(tp) != CHIPREV_ID_5717_A0) ||
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_57765 &&
|
|
|
+ tg3_chip_rev_id(tp) != CHIPREV_ID_57765_A0)))
|
|
|
tp->phy_flags |= TG3_PHYFLG_EEE_CAP;
|
|
|
|
|
|
tg3_phy_init_link_config(tp);
|
|
@@ -14629,7 +14625,7 @@ out_not_found:
|
|
|
return;
|
|
|
|
|
|
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 ||
|
|
|
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5717_C)
|
|
|
strcpy(tp->board_part_number, "BCM5717");
|
|
@@ -14637,7 +14633,7 @@ out_no_vpd:
|
|
|
strcpy(tp->board_part_number, "BCM5718");
|
|
|
else
|
|
|
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)
|
|
|
strcpy(tp->board_part_number, "BCM57780");
|
|
|
else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57760)
|
|
@@ -14648,7 +14644,7 @@ out_no_vpd:
|
|
|
strcpy(tp->board_part_number, "BCM57788");
|
|
|
else
|
|
|
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)
|
|
|
strcpy(tp->board_part_number, "BCM57761");
|
|
|
else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57765)
|
|
@@ -14663,7 +14659,7 @@ out_no_vpd:
|
|
|
strcpy(tp->board_part_number, "BCM57795");
|
|
|
else
|
|
|
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)
|
|
|
strcpy(tp->board_part_number, "BCM57762");
|
|
|
else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57766)
|
|
@@ -14674,7 +14670,7 @@ out_no_vpd:
|
|
|
strcpy(tp->board_part_number, "BCM57786");
|
|
|
else
|
|
|
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");
|
|
|
} else {
|
|
|
nomatch:
|
|
@@ -14915,7 +14911,7 @@ static void tg3_read_otp_ver(struct tg3 *tp)
|
|
|
{
|
|
|
u32 val, val2;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5762)
|
|
|
+ if (tg3_asic_rev(tp) != ASIC_REV_5762)
|
|
|
return;
|
|
|
|
|
|
if (!tg3_ape_otp_read(tp, OTP_ADDRESS_MAGIC0, &val) &&
|
|
@@ -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)
|
|
|
{
|
|
|
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;
|
|
|
|
|
|
/* All devices that use the alternate
|
|
@@ -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
|
|
|
* 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;
|
|
|
|
|
|
- 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;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5719 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5720)
|
|
|
tg3_flag_set(tp, 5717_PLUS);
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57766)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_57765 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_57766)
|
|
|
tg3_flag_set(tp, 57765_CLASS);
|
|
|
|
|
|
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);
|
|
|
|
|
|
/* Intentionally exclude ASIC_REV_5906 */
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 ||
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5755 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5787 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5784 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5761 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5785 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_57780 ||
|
|
|
tg3_flag(tp, 57765_PLUS))
|
|
|
tg3_flag_set(tp, 5755_PLUS);
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5780 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5780 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5714)
|
|
|
tg3_flag_set(tp, 5780_CLASS);
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906 ||
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5750 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5752 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5906 ||
|
|
|
tg3_flag(tp, 5755_PLUS) ||
|
|
|
tg3_flag(tp, 5780_CLASS))
|
|
|
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_set(tp, 5705_PLUS);
|
|
|
}
|
|
@@ -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;
|
|
|
|
|
|
- if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 &&
|
|
|
- (grc_misc_cfg == 0x8000 || grc_misc_cfg == 0x4000)) ||
|
|
|
+ if ((tg3_asic_rev(tp) == ASIC_REV_5703 &&
|
|
|
+ (grc_misc_cfg == 0x8000 || grc_misc_cfg == 0x4000)) ||
|
|
|
(tp->phy_flags & TG3_PHYFLG_IS_FET))
|
|
|
return true;
|
|
|
|
|
|
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)
|
|
|
return true;
|
|
|
} else {
|
|
@@ -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
|
|
|
* bus of these ICH bridges.
|
|
|
*/
|
|
|
- if ((tp->pci_chip_rev_id == CHIPREV_ID_5703_A1) ||
|
|
|
- (tp->pci_chip_rev_id == CHIPREV_ID_5703_A2)) {
|
|
|
+ if ((tg3_chip_rev_id(tp) == CHIPREV_ID_5703_A1) ||
|
|
|
+ (tg3_chip_rev_id(tp) == CHIPREV_ID_5703_A2)) {
|
|
|
static struct tg3_dev_id {
|
|
|
u32 vendor;
|
|
|
u32 device;
|
|
@@ -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 {
|
|
|
u32 vendor;
|
|
|
u32 device;
|
|
@@ -15276,29 +15272,29 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
|
|
|
} while (bridge);
|
|
|
}
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5704 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5714)
|
|
|
tp->pdev_peer = tg3_find_peer(tp);
|
|
|
|
|
|
/* 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. */
|
|
|
else if (tg3_flag(tp, 57765_PLUS))
|
|
|
tg3_flag_set(tp, HW_TSO_3);
|
|
|
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);
|
|
|
else if (tg3_flag(tp, 5750_PLUS)) {
|
|
|
tg3_flag_set(tp, HW_TSO_1);
|
|
|
tg3_flag_set(tp, TSO_BUG);
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 &&
|
|
|
- tp->pci_chip_rev_id >= CHIPREV_ID_5750_C2)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5750 &&
|
|
|
+ tg3_chip_rev_id(tp) >= CHIPREV_ID_5750_C2)
|
|
|
tg3_flag_clear(tp, TSO_BUG);
|
|
|
- } else if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701 &&
|
|
|
- tp->pci_chip_rev_id != CHIPREV_ID_5705_A0) {
|
|
|
+ } else if (tg3_asic_rev(tp) != ASIC_REV_5700 &&
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_5701 &&
|
|
|
+ tg3_chip_rev_id(tp) != CHIPREV_ID_5705_A0) {
|
|
|
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;
|
|
|
else
|
|
|
tp->fw_needed = FIRMWARE_TG3TSO;
|
|
@@ -15320,22 +15316,22 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
|
|
|
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->irq_max = 1;
|
|
|
|
|
|
if (tg3_flag(tp, 5750_PLUS)) {
|
|
|
tg3_flag_set(tp, SUPPORT_MSI);
|
|
|
- if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_AX ||
|
|
|
- GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_BX ||
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714 &&
|
|
|
- tp->pci_chip_rev_id <= CHIPREV_ID_5714_A2 &&
|
|
|
+ if (tg3_chip_rev(tp) == CHIPREV_5750_AX ||
|
|
|
+ tg3_chip_rev(tp) == CHIPREV_5750_BX ||
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_5714 &&
|
|
|
+ tg3_chip_rev_id(tp) <= CHIPREV_ID_5714_A2 &&
|
|
|
tp->pdev_peer == tp->pdev))
|
|
|
tg3_flag_clear(tp, SUPPORT_MSI);
|
|
|
|
|
|
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);
|
|
|
}
|
|
|
|
|
@@ -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;
|
|
|
tg3_rss_init_dflt_indir_tbl(tp, TG3_RSS_MAX_NUM_QS);
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5719 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5720)
|
|
|
tp->txq_max = tp->irq_max - 1;
|
|
|
}
|
|
|
|
|
|
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);
|
|
|
|
|
|
- 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;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5719 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5720 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762)
|
|
|
tg3_flag_set(tp, LRG_PROD_RING_CAP);
|
|
|
|
|
|
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);
|
|
|
|
|
|
if (!tg3_flag(tp, 5705_PLUS) ||
|
|
@@ -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);
|
|
|
if (lnkctl & PCI_EXP_LNKCTL_CLKREQ_EN) {
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) ==
|
|
|
- ASIC_REV_5906) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5906) {
|
|
|
tg3_flag_clear(tp, HW_TSO_2);
|
|
|
tg3_flag_clear(tp, TSO_CAPABLE);
|
|
|
}
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_57780_A0 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_57780_A1)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5784 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5761 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_57780_A0 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_57780_A1)
|
|
|
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);
|
|
|
}
|
|
|
- } 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
|
|
|
* follow PCIe codepaths, but do not have a PCIe capabilities
|
|
|
* section.
|
|
@@ -15434,7 +15429,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
|
|
|
&tp->pci_cacheline_sz);
|
|
|
pci_read_config_byte(tp->pdev, PCI_LATENCY_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;
|
|
|
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)
|
|
|
/* Important! -- It is critical that the PCI-X hw workaround
|
|
|
* 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
|
|
|
* 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)
|
|
|
tg3_flag_set(tp, PCI_32BIT);
|
|
|
|
|
|
/* 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_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)
|
|
|
/* Various workaround register access methods */
|
|
|
if (tg3_flag(tp, PCIX_TARGET_HWBUG))
|
|
|
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) &&
|
|
|
- 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
|
|
|
* 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)
|
|
|
pci_cmd &= ~PCI_COMMAND_MEMORY;
|
|
|
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->write32_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)
|
|
|
|
|
|
if (tp->write32 == tg3_write_indirect_reg32 ||
|
|
|
(tg3_flag(tp, PCIX_MODE) &&
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)))
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5701)))
|
|
|
tg3_flag_set(tp, SRAM_USE_CONFIG);
|
|
|
|
|
|
/* 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)
|
|
|
tw32(MEMARB_MODE, val | MEMARB_MODE_ENABLE);
|
|
|
|
|
|
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)) {
|
|
|
if (tg3_flag(tp, PCIX_MODE)) {
|
|
|
pci_read_config_dword(tp->pdev,
|
|
@@ -15567,14 +15562,14 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
|
|
|
&val);
|
|
|
tp->pci_fn = val & 0x7;
|
|
|
}
|
|
|
- } else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) {
|
|
|
+ } else if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5719 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5720) {
|
|
|
tg3_read_mem(tp, NIC_SRAM_CPMU_STATUS, &val);
|
|
|
if ((val & NIC_SRAM_CPMUSTAT_SIG_MSK) != NIC_SRAM_CPMUSTAT_SIG)
|
|
|
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;
|
|
|
else
|
|
|
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)
|
|
|
* It is also used as eeprom write protect on LOMs.
|
|
|
*/
|
|
|
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))
|
|
|
tp->grc_local_ctrl |= (GRC_LCLCTRL_GPIO_OE1 |
|
|
|
GRC_LCLCTRL_GPIO_OUTPUT1);
|
|
|
/* Unused GPIO3 must be driven as output on 5752 because there
|
|
|
* 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;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 ||
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5755 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_57780 ||
|
|
|
tg3_flag(tp, 57765_CLASS))
|
|
|
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)
|
|
|
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 |=
|
|
|
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)
|
|
|
tg3_flag_set(tp, JUMBO_RING_ENABLE);
|
|
|
|
|
|
/* Determine WakeOnLan speed to use. */
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5701_A0 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5701_B0 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5701_B2) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B0 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B2) {
|
|
|
tg3_flag_clear(tp, WOL_SPEED_100MB);
|
|
|
} else {
|
|
|
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;
|
|
|
|
|
|
/* A few boards don't want Ethernet@WireSpeed phy feature */
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 &&
|
|
|
- (tp->pci_chip_rev_id != CHIPREV_ID_5705_A0) &&
|
|
|
- (tp->pci_chip_rev_id != CHIPREV_ID_5705_A1)) ||
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_5705 &&
|
|
|
+ (tg3_chip_rev_id(tp) != CHIPREV_ID_5705_A0) &&
|
|
|
+ (tg3_chip_rev_id(tp) != CHIPREV_ID_5705_A1)) ||
|
|
|
(tp->phy_flags & TG3_PHYFLG_IS_FET) ||
|
|
|
(tp->phy_flags & TG3_PHYFLG_ANY_SERDES))
|
|
|
tp->phy_flags |= TG3_PHYFLG_NO_ETH_WIRE_SPEED;
|
|
|
|
|
|
- if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5703_AX ||
|
|
|
- GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5704_AX)
|
|
|
+ if (tg3_chip_rev(tp) == CHIPREV_5703_AX ||
|
|
|
+ tg3_chip_rev(tp) == CHIPREV_5704_AX)
|
|
|
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;
|
|
|
|
|
|
if (tg3_flag(tp, 5705_PLUS) &&
|
|
|
!(tp->phy_flags & TG3_PHYFLG_IS_FET) &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5785 &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_57780 &&
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_5785 &&
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_57780 &&
|
|
|
!tg3_flag(tp, 57765_PLUS)) {
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5755 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5787 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5784 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5761) {
|
|
|
if (tp->pdev->device != PCI_DEVICE_ID_TIGON3_5756 &&
|
|
|
tp->pdev->device != PCI_DEVICE_ID_TIGON3_5722)
|
|
|
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)
|
|
|
tp->phy_flags |= TG3_PHYFLG_BER_BUG;
|
|
|
}
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 &&
|
|
|
- GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5784_AX) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5784 &&
|
|
|
+ tg3_chip_rev(tp) != CHIPREV_5784_AX) {
|
|
|
tp->phy_otp = tg3_read_otp_phycfg(tp);
|
|
|
if (tp->phy_otp == 0)
|
|
|
tp->phy_otp = TG3_OTP_DEFAULT;
|
|
@@ -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->coalesce_mode = 0;
|
|
|
- if (GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5700_AX &&
|
|
|
- GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5700_BX)
|
|
|
+ if (tg3_chip_rev(tp) != CHIPREV_5700_AX &&
|
|
|
+ tg3_chip_rev(tp) != CHIPREV_5700_BX)
|
|
|
tp->coalesce_mode |= HOSTCC_MODE_32BYTE;
|
|
|
|
|
|
/* Set these bits to enable statistics workaround. */
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5719_A0 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5720_A0) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5717 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5719_A0 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5720_A0) {
|
|
|
tp->coalesce_mode |= HOSTCC_MODE_ATTN;
|
|
|
tp->grc_mode |= GRC_MODE_IRQ_ON_FLOW_ATTN;
|
|
|
}
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5785 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_57780)
|
|
|
tg3_flag_set(tp, USE_PHYLIB);
|
|
|
|
|
|
err = tg3_mdio_init(tp);
|
|
@@ -15740,8 +15735,8 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
|
|
|
|
|
|
/* Initialize data/descriptor byte/word swapping. */
|
|
|
val = tr32(GRC_MODE);
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5720 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762)
|
|
|
val &= (GRC_MODE_BYTE_SWAP_B2HRX_DATA |
|
|
|
GRC_MODE_WORD_SWAP_B2HRX_DATA |
|
|
|
GRC_MODE_B2HRX_ENABLE |
|
|
@@ -15761,10 +15756,10 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
|
|
|
&pci_state_reg);
|
|
|
if ((pci_state_reg & PCISTATE_CONV_PCI_MODE) == 0 &&
|
|
|
!tg3_flag(tp, PCIX_TARGET_HWBUG)) {
|
|
|
- if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5701_B0 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5701_B2 ||
|
|
|
- tp->pci_chip_rev_id == CHIPREV_ID_5701_B5) {
|
|
|
+ if (tg3_chip_rev_id(tp) == CHIPREV_ID_5701_A0 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B0 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B2 ||
|
|
|
+ tg3_chip_rev_id(tp) == CHIPREV_ID_5701_B5) {
|
|
|
void __iomem *sram_base;
|
|
|
|
|
|
/* 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)
|
|
|
grc_misc_cfg = tr32(GRC_MISC_CFG);
|
|
|
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_5788M))
|
|
|
tg3_flag_set(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);
|
|
|
if (tg3_flag(tp, TAGGED_STATUS)) {
|
|
|
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)
|
|
|
if (tp->phy_flags & TG3_PHYFLG_PHY_SERDES) {
|
|
|
tp->phy_flags &= ~TG3_PHYFLG_USE_MI_INTERRUPT;
|
|
|
} 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;
|
|
|
else
|
|
|
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)
|
|
|
* change bit implementation, so we must use the
|
|
|
* 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);
|
|
|
else
|
|
|
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)
|
|
|
* upon subsystem IDs.
|
|
|
*/
|
|
|
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_USE_MI_INTERRUPT;
|
|
|
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)
|
|
|
|
|
|
tp->rx_offset = NET_SKB_PAD + NET_IP_ALIGN;
|
|
|
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)) {
|
|
|
tp->rx_offset = NET_SKB_PAD;
|
|
|
#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
|
|
@@ -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
|
|
|
* 8 for these chips to workaround hw errata.
|
|
|
*/
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5750 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5752 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5755)
|
|
|
tp->rx_std_max_post = 8;
|
|
|
|
|
|
if (tg3_flag(tp, ASPM_WORKAROUND))
|
|
@@ -15934,7 +15929,7 @@ static int tg3_get_device_address(struct tg3 *tp)
|
|
|
}
|
|
|
|
|
|
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)) {
|
|
|
if (tr32(TG3PCI_DUAL_MAC_CTRL) & DUAL_MAC_CTRL_ID)
|
|
|
mac_offset = 0xcc;
|
|
@@ -15947,7 +15942,7 @@ static int tg3_get_device_address(struct tg3 *tp)
|
|
|
mac_offset = 0xcc;
|
|
|
if (tp->pci_fn > 1)
|
|
|
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;
|
|
|
|
|
|
/* First try to get it from MAC address mailbox. */
|
|
@@ -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
|
|
|
* effect.
|
|
|
*/
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701 &&
|
|
|
+ if (tg3_asic_rev(tp) != ASIC_REV_5700 &&
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_5701 &&
|
|
|
!tg3_flag(tp, PCI_EXPRESS))
|
|
|
goto out;
|
|
|
|
|
@@ -16254,14 +16249,14 @@ static int tg3_test_dma(struct tg3 *tp)
|
|
|
/* DMA read watermark not used on PCIE */
|
|
|
tp->dma_rwctrl |= 0x00180000;
|
|
|
} else if (!tg3_flag(tp, PCIX_MODE)) {
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5705 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5750)
|
|
|
tp->dma_rwctrl |= 0x003f0000;
|
|
|
else
|
|
|
tp->dma_rwctrl |= 0x003f000f;
|
|
|
} else {
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5703 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5704) {
|
|
|
u32 ccval = (tr32(TG3PCI_CLOCK_CTRL) & 0x1f);
|
|
|
u32 read_water = 0x7;
|
|
|
|
|
@@ -16270,22 +16265,22 @@ static int tg3_test_dma(struct tg3 *tp)
|
|
|
* better performance.
|
|
|
*/
|
|
|
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;
|
|
|
else if (ccval == 0x6 || ccval == 0x7)
|
|
|
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;
|
|
|
/* Set bit 23 to enable PCIX hw bug fix */
|
|
|
tp->dma_rwctrl |=
|
|
|
(read_water << DMA_RWCTRL_READ_WATER_SHIFT) |
|
|
|
(0x3 << DMA_RWCTRL_WRITE_WATER_SHIFT) |
|
|
|
(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 */
|
|
|
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 */
|
|
|
tp->dma_rwctrl |= 0x00148000;
|
|
|
} else {
|
|
@@ -16295,12 +16290,12 @@ static int tg3_test_dma(struct tg3 *tp)
|
|
|
if (tg3_flag(tp, ONE_DMA_AT_ONCE))
|
|
|
tp->dma_rwctrl |= DMA_RWCTRL_ONE_DMA;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5703 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5704)
|
|
|
tp->dma_rwctrl &= 0xfffffff0;
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) {
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5700 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5701) {
|
|
|
/* Remove this if it causes problems for some boards. */
|
|
|
tp->dma_rwctrl |= DMA_RWCTRL_USE_MEM_READ_MULT;
|
|
|
|
|
@@ -16324,8 +16319,8 @@ static int tg3_test_dma(struct tg3 *tp)
|
|
|
tg3_switch_clocks(tp);
|
|
|
#endif
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 &&
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701)
|
|
|
+ if (tg3_asic_rev(tp) != ASIC_REV_5700 &&
|
|
|
+ tg3_asic_rev(tp) != ASIC_REV_5701)
|
|
|
goto out;
|
|
|
|
|
|
/* 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)
|
|
|
DEFAULT_MB_MACRX_LOW_WATER_5705;
|
|
|
tp->bufmgr_config.mbuf_high_water =
|
|
|
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 =
|
|
|
DEFAULT_MB_MACRX_LOW_WATER_5906;
|
|
|
tp->bufmgr_config.mbuf_high_water =
|
|
@@ -16766,7 +16761,7 @@ static int tg3_init_one(struct pci_dev *pdev,
|
|
|
/* 5700 B0 chips do not support checksumming correctly due
|
|
|
* 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;
|
|
|
|
|
|
if (tg3_flag(tp, 5755_PLUS))
|
|
@@ -16786,11 +16781,11 @@ static int tg3_init_one(struct pci_dev *pdev,
|
|
|
if (features & NETIF_F_IPV6_CSUM)
|
|
|
features |= NETIF_F_TSO6;
|
|
|
if (tg3_flag(tp, HW_TSO_3) ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761 ||
|
|
|
- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 &&
|
|
|
- GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5784_AX) ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780)
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5761 ||
|
|
|
+ (tg3_asic_rev(tp) == ASIC_REV_5784 &&
|
|
|
+ tg3_chip_rev(tp) != CHIPREV_5784_AX) ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5785 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_57780)
|
|
|
features |= NETIF_F_TSO_ECN;
|
|
|
}
|
|
|
|
|
@@ -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
|
|
|
* 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))
|
|
|
/* Add the loopback capability */
|
|
|
features |= NETIF_F_LOOPBACK;
|
|
|
|
|
|
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) &&
|
|
|
!(tr32(TG3PCI_PCISTATE) & PCISTATE_BUS_SPEED_HIGH)) {
|
|
|
tg3_flag_set(tp, MAX_RXPEND_64);
|
|
@@ -16888,9 +16883,9 @@ static int tg3_init_one(struct pci_dev *pdev,
|
|
|
|
|
|
pci_set_drvdata(pdev, dev);
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5762)
|
|
|
+ if (tg3_asic_rev(tp) == ASIC_REV_5719 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5720 ||
|
|
|
+ tg3_asic_rev(tp) == ASIC_REV_5762)
|
|
|
tg3_flag_set(tp, PTP_CAPABLE);
|
|
|
|
|
|
if (tg3_flag(tp, 5717_PLUS)) {
|
|
@@ -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",
|
|
|
tp->board_part_number,
|
|
|
- tp->pci_chip_rev_id,
|
|
|
+ tg3_chip_rev_id(tp),
|
|
|
tg3_bus_string(tp, str),
|
|
|
dev->dev_addr);
|
|
|
|