arc_emac: remove custom "max-speed" parsing code
authorFlorian Fainelli <f.fainelli@gmail.com>
Thu, 5 Dec 2013 22:52:15 +0000 (14:52 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 6 Dec 2013 19:57:21 +0000 (14:57 -0500)
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>
drivers/net/ethernet/arc/emac.h
drivers/net/ethernet/arc/emac_main.c

index dc08678bf9a4f1561e9d95c7126fe43eaa0ab6ea..928fac6dd10a90dca66244dba99194c9c9e2924d 100644 (file)
@@ -122,7 +122,6 @@ struct buffer_state {
  * @link:      PHY's last seen link state.
  * @duplex:    PHY's last set duplex mode.
  * @speed:     PHY's last set speed.
- * @max_speed: Maximum supported by current system network data-rate.
  */
 struct arc_emac_priv {
        /* Devices */
@@ -152,7 +151,6 @@ struct arc_emac_priv {
        unsigned int link;
        unsigned int duplex;
        unsigned int speed;
-       unsigned int max_speed;
 };
 
 /**
index b2ffad1304d221ef54e60cd1a82138a4d8344975..eedf2a5fc2be472084a3561b17ab4ecfd7134705 100644 (file)
@@ -381,17 +381,7 @@ static int arc_emac_open(struct net_device *ndev)
        phy_dev->autoneg = AUTONEG_ENABLE;
        phy_dev->speed = 0;
        phy_dev->duplex = 0;
-       phy_dev->advertising = phy_dev->supported;
-
-       if (priv->max_speed > 100) {
-               phy_dev->advertising &= PHY_GBIT_FEATURES;
-       } else if (priv->max_speed <= 100) {
-               phy_dev->advertising &= PHY_BASIC_FEATURES;
-               if (priv->max_speed <= 10) {
-                       phy_dev->advertising &= ~SUPPORTED_100baseT_Half;
-                       phy_dev->advertising &= ~SUPPORTED_100baseT_Full;
-               }
-       }
+       phy_dev->advertising &= phy_dev->supported;
 
        priv->last_rx_bd = 0;
 
@@ -704,14 +694,6 @@ static int arc_emac_probe(struct platform_device *pdev)
        /* Set poll rate so that it polls every 1 ms */
        arc_reg_set(priv, R_POLLRATE, clock_frequency / 1000000);
 
-       /* Get max speed of operation from device tree */
-       if (of_property_read_u32(pdev->dev.of_node, "max-speed",
-                                &priv->max_speed)) {
-               dev_err(&pdev->dev, "failed to retrieve <max-speed> from device tree\n");
-               err = -EINVAL;
-               goto out;
-       }
-
        ndev->irq = irq;
        dev_info(&pdev->dev, "IRQ is %d\n", ndev->irq);