aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/ixp4xx/patches-4.4/207-npe_driver_multiphy_support.patch28
1 files changed, 25 insertions, 3 deletions
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));
+