summaryrefslogtreecommitdiffstats
path: root/target/linux/ixp4xx/patches-2.6.34/206-npe_driver_add_update_link_function.patch
diff options
context:
space:
mode:
authorkaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-11-02 12:01:56 +0000
committerkaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-11-02 12:01:56 +0000
commit98753425761e9fcfa87d035c351a4776d3114e4b (patch)
tree54663ffb1aa866c861c4ee55472ef51a6a34fe8a /target/linux/ixp4xx/patches-2.6.34/206-npe_driver_add_update_link_function.patch
parent0bf050bb7575e3eec2045c0344602fbdf9c80889 (diff)
[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.34/206-npe_driver_add_update_link_function.patch')
-rw-r--r--target/linux/ixp4xx/patches-2.6.34/206-npe_driver_add_update_link_function.patch98
1 files changed, 0 insertions, 98 deletions
diff --git a/target/linux/ixp4xx/patches-2.6.34/206-npe_driver_add_update_link_function.patch b/target/linux/ixp4xx/patches-2.6.34/206-npe_driver_add_update_link_function.patch
deleted file mode 100644
index 755097396..000000000
--- a/target/linux/ixp4xx/patches-2.6.34/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);
- }
-
-@@ -1264,6 +1278,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));
-