提交 9162e7e5 编写于 作者: O Ondrej Zary 提交者: David S. Miller

tlan: Isolate external PHY when using internal PHY

When using internal 10 Mbps PHY, isolate the external PHY from MII bus.
External PHY must be kept powered up because it passes TX from tlan chip to
network.

This fixes weird link-loss problems under load with OC-2326 card at 10 Mbps.
Signed-off-by: NOndrej Zary <linux@rainbow-software.org>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 e697b16b
......@@ -2528,9 +2528,10 @@ static void tlan_phy_power_down(struct net_device *dev)
value = MII_GC_PDOWN | MII_GC_LOOPBK | MII_GC_ISOLATE;
tlan_mii_sync(dev->base_addr);
tlan_mii_write_reg(dev, priv->phy[priv->phy_num], MII_GEN_CTL, value);
if ((priv->phy_num == 0) &&
(priv->phy[1] != TLAN_PHY_NONE) &&
(!(priv->adapter->flags & TLAN_ADAPTER_USE_INTERN_10))) {
if ((priv->phy_num == 0) && (priv->phy[1] != TLAN_PHY_NONE)) {
/* if using internal PHY, the external PHY must be powered on */
if (priv->adapter->flags & TLAN_ADAPTER_USE_INTERN_10)
value = MII_GC_ISOLATE; /* just isolate it from MII */
tlan_mii_sync(dev->base_addr);
tlan_mii_write_reg(dev, priv->phy[1], MII_GEN_CTL, value);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册