diff options
Diffstat (limited to 'target/linux/atheros/patches-2.6.28/137-ar2313_2.6.28.patch')
-rw-r--r-- | target/linux/atheros/patches-2.6.28/137-ar2313_2.6.28.patch | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/target/linux/atheros/patches-2.6.28/137-ar2313_2.6.28.patch b/target/linux/atheros/patches-2.6.28/137-ar2313_2.6.28.patch deleted file mode 100644 index 0f4d732630..0000000000 --- a/target/linux/atheros/patches-2.6.28/137-ar2313_2.6.28.patch +++ /dev/null @@ -1,144 +0,0 @@ -This patch reflects changes in mdiobus implementation in kernel 2.6.28. ---- a/drivers/net/ar2313/ar2313.c -+++ b/drivers/net/ar2313/ar2313.c -@@ -159,10 +159,10 @@ static void rx_tasklet_func(unsigned lon - static void rx_tasklet_cleanup(struct net_device *dev); - static void ar2313_multicast_list(struct net_device *dev); - --static int mdiobus_read(struct mii_bus *bus, int phy_addr, int regnum); --static int mdiobus_write(struct mii_bus *bus, int phy_addr, int regnum, u16 value); --static int mdiobus_reset(struct mii_bus *bus); --static int mdiobus_probe (struct net_device *dev); -+static int ar2313_mdiobus_read(struct mii_bus *bus, int phy_addr, int regnum); -+static int ar2313_mdiobus_write(struct mii_bus *bus, int phy_addr, int regnum, u16 value); -+static int ar2313_mdiobus_reset(struct mii_bus *bus); -+static int ar2313_mdiobus_probe (struct net_device *dev); - static void ar2313_adjust_link(struct net_device *dev); - - #ifndef ERR -@@ -286,18 +286,22 @@ int __init ar2313_probe(struct platform_ - dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2], - dev->dev_addr[3], dev->dev_addr[4], dev->dev_addr[5], dev->irq); - -- sp->mii_bus.priv = dev; -- sp->mii_bus.read = mdiobus_read; -- sp->mii_bus.write = mdiobus_write; -- sp->mii_bus.reset = mdiobus_reset; -- sp->mii_bus.name = "ar2313_eth_mii"; -- snprintf(sp->mii_bus.id, MII_BUS_ID_SIZE, "0"); -- sp->mii_bus.irq = kmalloc(sizeof(int), GFP_KERNEL); -- *sp->mii_bus.irq = PHY_POLL; -+ sp->mii_bus = mdiobus_alloc(); -+ if (sp->mii_bus == NULL) -+ return -1; -+ -+ sp->mii_bus->priv = dev; -+ sp->mii_bus->read = ar2313_mdiobus_read; -+ sp->mii_bus->write = ar2313_mdiobus_write; -+ sp->mii_bus->reset = ar2313_mdiobus_reset; -+ sp->mii_bus->name = "ar2313_eth_mii"; -+ snprintf(sp->mii_bus->id, MII_BUS_ID_SIZE, "0"); -+ sp->mii_bus->irq = kmalloc(sizeof(int), GFP_KERNEL); -+ *sp->mii_bus->irq = PHY_POLL; - -- mdiobus_register(&sp->mii_bus); -+ mdiobus_register(sp->mii_bus); - -- if (mdiobus_probe(dev) != 0) { -+ if (ar2313_mdiobus_probe(dev) != 0) { - printk(KERN_ERR "ar2313: mdiobus_probe failed"); - rx_tasklet_cleanup(dev); - ar2313_init_cleanup(dev); -@@ -432,9 +436,12 @@ static void rx_tasklet_cleanup(struct ne - static int __exit ar2313_remove(struct platform_device *pdev) - { - struct net_device *dev = platform_get_drvdata(pdev); -+ struct ar2313_private *sp = netdev_priv(dev); - rx_tasklet_cleanup(dev); - ar2313_init_cleanup(dev); - unregister_netdev(dev); -+ mdiobus_unregister(sp->mii_bus); -+ mdiobus_free(sp->mii_bus); - kfree(dev); - return 0; - } -@@ -619,7 +626,7 @@ static void ar2313_check_link(struct net - struct ar2313_private *sp = netdev_priv(dev); - u16 phyData; - -- phyData = mdiobus_read(&sp->mii_bus, sp->phy, MII_BMSR); -+ phyData = ar2313_mdiobus_read(sp->mii_bus, sp->phy, MII_BMSR); - if (sp->phyData != phyData) { - if (phyData & BMSR_LSTATUS) { - /* link is present, ready link partner ability to deterine -@@ -628,10 +635,10 @@ static void ar2313_check_link(struct net - u16 reg; - - sp->link = 1; -- reg = mdiobus_read(&sp->mii_bus, sp->phy, MII_BMCR); -+ reg = ar2313_mdiobus_read(sp->mii_bus, sp->phy, MII_BMCR); - if (reg & BMCR_ANENABLE) { - /* auto neg enabled */ -- reg = mdiobus_read(&sp->mii_bus, sp->phy, MII_LPA); -+ reg = ar2313_mdiobus_read(sp->mii_bus, sp->phy, MII_LPA); - duplex = (reg & (LPA_100FULL | LPA_10FULL)) ? 1 : 0; - } else { - /* no auto neg, just read duplex config */ -@@ -1320,7 +1327,7 @@ static void ar2313_adjust_link(struct ne - ((reg << MII_ADDR_REG_SHIFT) | (phy << MII_ADDR_PHY_SHIFT)) - - static int --mdiobus_read(struct mii_bus *bus, int phy_addr, int regnum) -+ar2313_mdiobus_read(struct mii_bus *bus, int phy_addr, int regnum) - { - struct net_device *const dev = bus->priv; - struct ar2313_private *sp = netdev_priv(dev); -@@ -1332,7 +1339,7 @@ mdiobus_read(struct mii_bus *bus, int ph - } - - static int --mdiobus_write(struct mii_bus *bus, int phy_addr, int regnum, -+ar2313_mdiobus_write(struct mii_bus *bus, int phy_addr, int regnum, - u16 value) - { - struct net_device *const dev = bus->priv; -@@ -1346,7 +1353,7 @@ mdiobus_write(struct mii_bus *bus, int p - return 0; - } - --static int mdiobus_reset(struct mii_bus *bus) -+static int ar2313_mdiobus_reset(struct mii_bus *bus) - { - struct net_device *const dev = bus->priv; - -@@ -1355,7 +1362,7 @@ static int mdiobus_reset(struct mii_bus - return 0; - } - --static int mdiobus_probe (struct net_device *dev) -+static int ar2313_mdiobus_probe (struct net_device *dev) - { - struct ar2313_private *const sp = netdev_priv(dev); - struct phy_device *phydev = NULL; -@@ -1363,8 +1370,8 @@ static int mdiobus_probe (struct net_dev - - /* find the first (lowest address) PHY on the current MAC's MII bus */ - for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) -- if (sp->mii_bus.phy_map[phy_addr]) { -- phydev = sp->mii_bus.phy_map[phy_addr]; -+ if (sp->mii_bus->phy_map[phy_addr]) { -+ phydev = sp->mii_bus->phy_map[phy_addr]; - break; /* break out with first one found */ - } - ---- a/drivers/net/ar2313/ar2313.h -+++ b/drivers/net/ar2313/ar2313.h -@@ -162,7 +162,7 @@ struct ar2313_private { - int unloading; - - struct phy_device *phy_dev; -- struct mii_bus mii_bus; -+ struct mii_bus *mii_bus; - int oldduplex; - }; - |