|
@@ -959,15 +959,16 @@ static void bcm_sysport_adj_link(struct net_device *dev)
|
|
if (!phydev->pause)
|
|
if (!phydev->pause)
|
|
cmd_bits |= CMD_RX_PAUSE_IGNORE | CMD_TX_PAUSE_IGNORE;
|
|
cmd_bits |= CMD_RX_PAUSE_IGNORE | CMD_TX_PAUSE_IGNORE;
|
|
|
|
|
|
- reg = umac_readl(priv, UMAC_CMD);
|
|
|
|
- reg &= ~((CMD_SPEED_MASK << CMD_SPEED_SHIFT) |
|
|
|
|
|
|
+ if (changed) {
|
|
|
|
+ reg = umac_readl(priv, UMAC_CMD);
|
|
|
|
+ reg &= ~((CMD_SPEED_MASK << CMD_SPEED_SHIFT) |
|
|
CMD_HD_EN | CMD_RX_PAUSE_IGNORE |
|
|
CMD_HD_EN | CMD_RX_PAUSE_IGNORE |
|
|
CMD_TX_PAUSE_IGNORE);
|
|
CMD_TX_PAUSE_IGNORE);
|
|
- reg |= cmd_bits;
|
|
|
|
- umac_writel(priv, reg, UMAC_CMD);
|
|
|
|
|
|
+ reg |= cmd_bits;
|
|
|
|
+ umac_writel(priv, reg, UMAC_CMD);
|
|
|
|
|
|
- if (changed)
|
|
|
|
phy_print_status(priv->phydev);
|
|
phy_print_status(priv->phydev);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
static int bcm_sysport_init_tx_ring(struct bcm_sysport_priv *priv,
|
|
static int bcm_sysport_init_tx_ring(struct bcm_sysport_priv *priv,
|