diff --git a/target/linux/ixp4xx/patches-4.4/207-npe_driver_multiphy_support.patch b/target/linux/ixp4xx/patches-4.4/207-npe_driver_multiphy_support.patch index 207ccc533a..33c3327ee9 100644 --- a/target/linux/ixp4xx/patches-4.4/207-npe_driver_multiphy_support.patch +++ b/target/linux/ixp4xx/patches-4.4/207-npe_driver_multiphy_support.patch @@ -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)); +