diff options
author | Nicolas Thill <nico@openwrt.org> | 2007-07-27 03:07:52 +0000 |
---|---|---|
committer | Nicolas Thill <nico@openwrt.org> | 2007-07-27 03:07:52 +0000 |
commit | 39127ef8bfc4b94d499432a517ce7f8cdd63d3d5 (patch) | |
tree | e7eefc3ec1a5125600436d79a05085230df505b1 /target/linux/ar7-2.6/patches/210-phy_fixed.patch | |
parent | c7437ec67c0de324750ffc502abc8a716dff4d9c (diff) | |
download | upstream-39127ef8bfc4b94d499432a517ce7f8cdd63d3d5.tar.gz upstream-39127ef8bfc4b94d499432a517ce7f8cdd63d3d5.tar.bz2 upstream-39127ef8bfc4b94d499432a517ce7f8cdd63d3d5.zip |
update ar7 to 2.6.22.1 (thanks to Matteo Croce for his great help)
SVN-Revision: 8189
Diffstat (limited to 'target/linux/ar7-2.6/patches/210-phy_fixed.patch')
-rw-r--r-- | target/linux/ar7-2.6/patches/210-phy_fixed.patch | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/target/linux/ar7-2.6/patches/210-phy_fixed.patch b/target/linux/ar7-2.6/patches/210-phy_fixed.patch deleted file mode 100644 index 0ae2282c71..0000000000 --- a/target/linux/ar7-2.6/patches/210-phy_fixed.patch +++ /dev/null @@ -1,94 +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 +284,34 @@ - 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; -+ } -+ -+ down_write(&phydev->dev.bus->subsys.rwsem); -+ 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 - } - - |