diff options
Diffstat (limited to 'target/linux/ar7-2.6/patches-2.6.22/210-phy_fixed.patch')
-rw-r--r-- | target/linux/ar7-2.6/patches-2.6.22/210-phy_fixed.patch | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/target/linux/ar7-2.6/patches-2.6.22/210-phy_fixed.patch b/target/linux/ar7-2.6/patches-2.6.22/210-phy_fixed.patch deleted file mode 100644 index c8eceebb5..000000000 --- a/target/linux/ar7-2.6/patches-2.6.22/210-phy_fixed.patch +++ /dev/null @@ -1,93 +0,0 @@ -Index: linux-2.6.21.4/drivers/net/phy/fixed.c -=================================================================== ---- linux-2.6.21.4.orig/drivers/net/phy/fixed.c 2007-06-11 16:30:06.418483448 +0200 -+++ linux-2.6.21.4/drivers/net/phy/fixed.c 2007-06-11 16:30:11.156763120 +0200 -@@ -187,6 +187,19 @@ - .driver = { .owner = THIS_MODULE,}, - }; - -+static void fixed_mdio_release (struct device * dev) -+{ -+ struct phy_device *phydev = container_of(dev, struct phy_device, dev); -+ struct mii_bus *bus = phydev->bus; -+ struct fixed_info *fixed = bus->priv; -+ -+ kfree(phydev); -+ kfree(bus->dev); -+ kfree(bus); -+ kfree(fixed->regs); -+ kfree(fixed); -+} -+ - /*----------------------------------------------------------------------------- - * This func is used to create all the necessary stuff, bind - * the fixed phy driver and register all it on the mdio_bus_type. -@@ -221,6 +234,12 @@ - } - - fixed->regs = kzalloc(MII_REGS_NUM*sizeof(int), GFP_KERNEL); -+ if (NULL == fixed->regs) { -+ kfree(dev); -+ kfree(new_bus); -+ kfree(fixed); -+ return -ENOMEM; -+ } - fixed->regs_num = MII_REGS_NUM; - fixed->phy_status.speed = speed; - fixed->phy_status.duplex = duplex; -@@ -249,8 +268,11 @@ - fixed->phydev = phydev; - - if(NULL == phydev) { -- err = -ENOMEM; -- goto device_create_fail; -+ kfree(dev); -+ kfree(new_bus); -+ kfree(fixed->regs); -+ kfree(fixed); -+ return -ENOMEM; - } - - phydev->irq = PHY_IGNORE_INTERRUPT; -@@ -262,8 +283,33 @@ - else - snprintf(phydev->dev.bus_id, BUS_ID_SIZE, - "fixed@%d:%d", speed, duplex); -+ - phydev->bus = new_bus; - -+#if 1 -+ phydev->dev.driver = &fixed_mdio_driver.driver; -+ phydev->dev.release = fixed_mdio_release; -+ -+ err = phydev->dev.driver->probe(&phydev->dev); -+ if(err < 0) { -+ printk(KERN_ERR "Phy %s: problems with fixed driver\n", -+ phydev->dev.bus_id); -+ kfree(phydev); -+ kfree(dev); -+ kfree(new_bus); -+ kfree(fixed->regs); -+ kfree(fixed); -+ return err; -+ } -+ -+ err = device_register(&phydev->dev); -+ if(err) { -+ printk(KERN_ERR "Phy %s failed to register\n", -+ phydev->dev.bus_id); -+ } -+ -+ return 0; -+#else - err = device_register(&phydev->dev); - if(err) { - printk(KERN_ERR "Phy %s failed to register\n", -@@ -306,6 +354,7 @@ - kfree(fixed); - - return err; -+#endif - } - - |