summaryrefslogtreecommitdiffstats
path: root/target/linux/ar7-2.6/patches/210-phy_fixed.patch
diff options
context:
space:
mode:
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.patch94
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 0ae2282c7..000000000
--- 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
- }
-
-