switch ar7 to 2.6.23
[openwrt/svn-archive/archive.git] / target / linux / ar7 / patches-2.6.22 / 210-phy_fixed.patch
diff --git a/target/linux/ar7/patches-2.6.22/210-phy_fixed.patch b/target/linux/ar7/patches-2.6.22/210-phy_fixed.patch
deleted file mode 100644 (file)
index c8eceeb..0000000
+++ /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
- }