aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/arc
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2013-12-05 17:52:15 -0500
committerDavid S. Miller <davem@davemloft.net>2013-12-06 14:57:21 -0500
commitb0ac9564061265dd14e6f8f777622e3401b82b4b (patch)
tree390b78ca15d01a6914252a2276774e94dc20a10e /drivers/net/ethernet/arc
parent8fdade4be755af17a3d205d07f594f939f173504 (diff)
arc_emac: remove custom "max-speed" parsing code
The ARC emac driver was the only in-tree to parse a PHY device 'max-speed' property but yet failed to do it correctly because 'max-speed' is supposed to set a PHY device supported features, not the advertising features as it was done. Now that of_mdiobus_register() takes care of doing that, remove the custom 'max-speed' parsing code. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/arc')
-rw-r--r--drivers/net/ethernet/arc/emac.h2
-rw-r--r--drivers/net/ethernet/arc/emac_main.c20
2 files changed, 1 insertions, 21 deletions
diff --git a/drivers/net/ethernet/arc/emac.h b/drivers/net/ethernet/arc/emac.h
index dc08678bf9a4..928fac6dd10a 100644
--- a/drivers/net/ethernet/arc/emac.h
+++ b/drivers/net/ethernet/arc/emac.h
@@ -122,7 +122,6 @@ struct buffer_state {
122 * @link: PHY's last seen link state. 122 * @link: PHY's last seen link state.
123 * @duplex: PHY's last set duplex mode. 123 * @duplex: PHY's last set duplex mode.
124 * @speed: PHY's last set speed. 124 * @speed: PHY's last set speed.
125 * @max_speed: Maximum supported by current system network data-rate.
126 */ 125 */
127struct arc_emac_priv { 126struct arc_emac_priv {
128 /* Devices */ 127 /* Devices */
@@ -152,7 +151,6 @@ struct arc_emac_priv {
152 unsigned int link; 151 unsigned int link;
153 unsigned int duplex; 152 unsigned int duplex;
154 unsigned int speed; 153 unsigned int speed;
155 unsigned int max_speed;
156}; 154};
157 155
158/** 156/**
diff --git a/drivers/net/ethernet/arc/emac_main.c b/drivers/net/ethernet/arc/emac_main.c
index b2ffad1304d2..eedf2a5fc2be 100644
--- a/drivers/net/ethernet/arc/emac_main.c
+++ b/drivers/net/ethernet/arc/emac_main.c
@@ -381,17 +381,7 @@ static int arc_emac_open(struct net_device *ndev)
381 phy_dev->autoneg = AUTONEG_ENABLE; 381 phy_dev->autoneg = AUTONEG_ENABLE;
382 phy_dev->speed = 0; 382 phy_dev->speed = 0;
383 phy_dev->duplex = 0; 383 phy_dev->duplex = 0;
384 phy_dev->advertising = phy_dev->supported; 384 phy_dev->advertising &= phy_dev->supported;
385
386 if (priv->max_speed > 100) {
387 phy_dev->advertising &= PHY_GBIT_FEATURES;
388 } else if (priv->max_speed <= 100) {
389 phy_dev->advertising &= PHY_BASIC_FEATURES;
390 if (priv->max_speed <= 10) {
391 phy_dev->advertising &= ~SUPPORTED_100baseT_Half;
392 phy_dev->advertising &= ~SUPPORTED_100baseT_Full;
393 }
394 }
395 385
396 priv->last_rx_bd = 0; 386 priv->last_rx_bd = 0;
397 387
@@ -704,14 +694,6 @@ static int arc_emac_probe(struct platform_device *pdev)
704 /* Set poll rate so that it polls every 1 ms */ 694 /* Set poll rate so that it polls every 1 ms */
705 arc_reg_set(priv, R_POLLRATE, clock_frequency / 1000000); 695 arc_reg_set(priv, R_POLLRATE, clock_frequency / 1000000);
706 696
707 /* Get max speed of operation from device tree */
708 if (of_property_read_u32(pdev->dev.of_node, "max-speed",
709 &priv->max_speed)) {
710 dev_err(&pdev->dev, "failed to retrieve <max-speed> from device tree\n");
711 err = -EINVAL;
712 goto out;
713 }
714
715 ndev->irq = irq; 697 ndev->irq = irq;
716 dev_info(&pdev->dev, "IRQ is %d\n", ndev->irq); 698 dev_info(&pdev->dev, "IRQ is %d\n", ndev->irq);
717 699