diff options
author | acoul <acoul@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-09-04 22:50:43 +0000 |
---|---|---|
committer | acoul <acoul@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-09-04 22:50:43 +0000 |
commit | 4d03b9fae5bee977487c7aa9af56afba26be711b (patch) | |
tree | bed143ba4367bf162f9d3f1852d735eee15293d9 /target/linux/ixp4xx/patches-2.6.36/206-npe_driver_add_update_link_function.patch | |
parent | ce1b0c871ed20dc27e9f58912daec93d24878031 (diff) |
linux/ixp4xx: revert r22922
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22923 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ixp4xx/patches-2.6.36/206-npe_driver_add_update_link_function.patch')
-rw-r--r-- | target/linux/ixp4xx/patches-2.6.36/206-npe_driver_add_update_link_function.patch | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/target/linux/ixp4xx/patches-2.6.36/206-npe_driver_add_update_link_function.patch b/target/linux/ixp4xx/patches-2.6.36/206-npe_driver_add_update_link_function.patch deleted file mode 100644 index 7ae1a8404d..0000000000 --- a/target/linux/ixp4xx/patches-2.6.36/206-npe_driver_add_update_link_function.patch +++ /dev/null @@ -1,98 +0,0 @@ ---- a/drivers/net/arm/ixp4xx_eth.c -+++ b/drivers/net/arm/ixp4xx_eth.c -@@ -169,7 +169,7 @@ struct port { - struct desc *desc_tab; /* coherent */ - u32 desc_tab_phys; - int id; /* logical port ID */ -- int speed, duplex; -+ int link, speed, duplex; - u8 firmware[4]; - }; - -@@ -366,37 +366,52 @@ static void ixp4xx_mdio_remove(void) - mdiobus_free(mdio_bus); - } - -- --static void ixp4xx_adjust_link(struct net_device *dev) -+static void ixp4xx_update_link(struct net_device *dev) - { - struct port *port = netdev_priv(dev); -- struct phy_device *phydev = port->phydev; - -- if (!phydev->link) { -- if (port->speed) { -- port->speed = 0; -- printk(KERN_INFO "%s: link down\n", dev->name); -- } -+ if (!port->link) { -+ netif_carrier_off(dev); -+ printk(KERN_INFO "%s: link down\n", dev->name); - return; - } - -- if (port->speed == phydev->speed && port->duplex == phydev->duplex) -- return; -- -- port->speed = phydev->speed; -- port->duplex = phydev->duplex; -- -- if (port->duplex) -+ if (port->duplex == DUPLEX_FULL) - __raw_writel(DEFAULT_TX_CNTRL0 & ~TX_CNTRL0_HALFDUPLEX, - &port->regs->tx_control[0]); - else - __raw_writel(DEFAULT_TX_CNTRL0 | TX_CNTRL0_HALFDUPLEX, - &port->regs->tx_control[0]); - -+ netif_carrier_on(dev); - printk(KERN_INFO "%s: link up, speed %u Mb/s, %s duplex\n", - dev->name, port->speed, port->duplex ? "full" : "half"); - } - -+static void ixp4xx_adjust_link(struct net_device *dev) -+{ -+ struct port *port = netdev_priv(dev); -+ struct phy_device *phydev = port->phydev; -+ int status_change = 0; -+ -+ if (phydev->link) { -+ if (port->duplex != phydev->duplex -+ || port->speed != phydev->speed) { -+ status_change = 1; -+ } -+ } -+ -+ if (phydev->link != port->link) -+ status_change = 1; -+ -+ port->link = phydev->link; -+ port->speed = phydev->speed; -+ port->duplex = phydev->duplex; -+ -+ if (status_change) -+ ixp4xx_update_link(dev); -+} -+ - static int ixp4xx_phy_connect(struct net_device *dev) - { - struct port *port = netdev_priv(dev); -@@ -431,7 +446,6 @@ static void ixp4xx_phy_start(struct net_ - { - struct port *port = netdev_priv(dev); - -- port->speed = 0; /* force "link up" message */ - phy_start(port->phydev); - } - -@@ -1263,6 +1277,10 @@ static int __devinit eth_init_one(struct - 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)); - |