aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/ti
diff options
context:
space:
mode:
authorOndrej Zary <linux@rainbow-software.org>2014-06-30 12:38:35 -0400
committerDavid S. Miller <davem@davemloft.net>2014-07-07 20:06:52 -0400
commit7a72eddc8e943a96afc86264e095f5b1d037ed4a (patch)
treee3ccf247c6d63473f76c8cf5cf39df258b385b36 /drivers/net/ethernet/ti
parent9cff441ed64a44db7cd15d187030f2f9c1bb6465 (diff)
tlan: Don't disable internal PHY on cards that use it in 10 Mbps mode
In tlan_reset_adapter, we disable internal PHY when an external one is used. On cards which use internal PHY in 10 Mbps mode, we enable it later when setting 10 Mbps mode but it does not really work (PHY fails to reset). Leave it enabled instead. Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/ti')
-rw-r--r--drivers/net/ethernet/ti/tlan.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/net/ethernet/ti/tlan.c b/drivers/net/ethernet/ti/tlan.c
index 8278150119d5..50ac9e7b927f 100644
--- a/drivers/net/ethernet/ti/tlan.c
+++ b/drivers/net/ethernet/ti/tlan.c
@@ -2237,7 +2237,9 @@ tlan_reset_adapter(struct net_device *dev)
2237 } 2237 }
2238 } 2238 }
2239 2239
2240 if (priv->phy_num == 0) 2240 /* don't power down internal PHY if we're going to use it */
2241 if (priv->phy_num == 0 ||
2242 (priv->adapter->flags & TLAN_ADAPTER_USE_INTERN_10))
2241 data |= TLAN_NET_CFG_PHY_EN; 2243 data |= TLAN_NET_CFG_PHY_EN;
2242 tlan_dio_write16(dev->base_addr, TLAN_NET_CONFIG, (u16) data); 2244 tlan_dio_write16(dev->base_addr, TLAN_NET_CONFIG, (u16) data);
2243 2245
@@ -2688,7 +2690,6 @@ static void tlan_phy_finish_auto_neg(struct net_device *dev)
2688 struct tlan_priv *priv = netdev_priv(dev); 2690 struct tlan_priv *priv = netdev_priv(dev);
2689 u16 an_adv; 2691 u16 an_adv;
2690 u16 an_lpa; 2692 u16 an_lpa;
2691 u16 data;
2692 u16 mode; 2693 u16 mode;
2693 u16 phy; 2694 u16 phy;
2694 u16 status; 2695 u16 status;
@@ -2721,9 +2722,6 @@ static void tlan_phy_finish_auto_neg(struct net_device *dev)
2721 (priv->adapter->flags & TLAN_ADAPTER_USE_INTERN_10) && 2722 (priv->adapter->flags & TLAN_ADAPTER_USE_INTERN_10) &&
2722 (priv->phy_num != 0)) { 2723 (priv->phy_num != 0)) {
2723 priv->phy_num = 0; 2724 priv->phy_num = 0;
2724 data = TLAN_NET_CFG_1FRAG | TLAN_NET_CFG_1CHAN
2725 | TLAN_NET_CFG_PHY_EN;
2726 tlan_dio_write16(dev->base_addr, TLAN_NET_CONFIG, data);
2727 tlan_set_timer(dev, (400*HZ/1000), TLAN_TIMER_PHY_PDOWN); 2725 tlan_set_timer(dev, (400*HZ/1000), TLAN_TIMER_PHY_PDOWN);
2728 return; 2726 return;
2729 } 2727 }