diff options
author | Imre Kaloz <kaloz@openwrt.org> | 2010-11-02 12:01:56 +0000 |
---|---|---|
committer | Imre Kaloz <kaloz@openwrt.org> | 2010-11-02 12:01:56 +0000 |
commit | 4c543cfd895ab6735711fc658cbd9f83b8aad1a7 (patch) | |
tree | 54663ffb1aa866c861c4ee55472ef51a6a34fe8a /target/linux/ixp4xx/patches-2.6.35/206-npe_driver_add_update_link_function.patch | |
parent | abb1a5781fc7f1b7ae192176faa1690ac83bfbc5 (diff) | |
download | master-187ad058-4c543cfd895ab6735711fc658cbd9f83b8aad1a7.tar.gz master-187ad058-4c543cfd895ab6735711fc658cbd9f83b8aad1a7.tar.bz2 master-187ad058-4c543cfd895ab6735711fc658cbd9f83b8aad1a7.zip |
[ixp4xx]: support only 2.6.32 and 2.6.36
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23773 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ixp4xx/patches-2.6.35/206-npe_driver_add_update_link_function.patch')
-rw-r--r-- | target/linux/ixp4xx/patches-2.6.35/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.35/206-npe_driver_add_update_link_function.patch b/target/linux/ixp4xx/patches-2.6.35/206-npe_driver_add_update_link_function.patch deleted file mode 100644 index 7ae1a8404d..0000000000 --- a/target/linux/ixp4xx/patches-2.6.35/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)); - |