ixp4xx: fix non-standard phy support
[openwrt/staging/jogo.git] / target / linux / ixp4xx / patches-4.4 / 207-npe_driver_multiphy_support.patch
index 207ccc533a84a8171c3128b9eb9aa6ad566aaf32..33c3327ee9b1f1a1c45de969086bbe3f3b6b2c5c 100644 (file)
@@ -66,7 +66,18 @@ TODO: take care of additional PHYs through the PHY abstraction layer
        snprintf(phy_id, MII_BUS_ID_SIZE + 3, PHY_ID_FMT,
                mdio_bus->id, plat->phy);
        port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link,
-@@ -632,21 +663,32 @@ static void ixp4xx_phy_disconnect(struct
+@@ -625,6 +656,10 @@ static int ixp4xx_phy_connect(struct net
+       port->phydev->irq = PHY_POLL;
++      port->link = 0;
++      port->speed = 0;
++      port->duplex = -1;
++
+       return 0;
+ }
+@@ -632,21 +667,32 @@ static void ixp4xx_phy_disconnect(struct
  {
        struct port *port = netdev_priv(dev);
  
@@ -102,7 +113,7 @@ TODO: take care of additional PHYs through the PHY abstraction layer
  }
  
  static inline void debug_pkt(struct net_device *dev, const char *func,
-@@ -1048,6 +1090,9 @@ static int eth_ioctl(struct net_device *
+@@ -1048,6 +1094,9 @@ static int eth_ioctl(struct net_device *
                        return hwtstamp_get(dev, req);
        }
  
@@ -112,7 +123,7 @@ TODO: take care of additional PHYs through the PHY abstraction layer
        return phy_mii_ioctl(port->phydev, req, cmd);
  }
  
-@@ -1068,18 +1113,30 @@ static void ixp4xx_get_drvinfo(struct ne
+@@ -1068,18 +1117,30 @@ static void ixp4xx_get_drvinfo(struct ne
  static int ixp4xx_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
  {
        struct port *port = netdev_priv(dev);
@@ -143,3 +154,14 @@ TODO: take care of additional PHYs through the PHY abstraction layer
        return phy_start_aneg(port->phydev);
  }
  
+@@ -1529,10 +1590,6 @@ static int eth_init_one(struct platform_
+       if ((err = register_netdev(dev)))
+               goto err_phy_dis;
+-      port->link = 0;
+-      port->speed = 0;
+-      port->duplex = -1;
+-
+       printk(KERN_INFO "%s: MII PHY %i on %s\n", dev->name, plat->phy,
+              npe_name(port->npe));