- am->mii_bus.name = "ag71xx_mdio";
- am->mii_bus.read = ag71xx_mdio_read;
- am->mii_bus.write = ag71xx_mdio_write;
- am->mii_bus.reset = ag71xx_mdio_reset;
- am->mii_bus.irq = am->mii_irq;
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26))
- am->mii_bus.id = 0;
-#else
- snprintf(am->mii_bus.id, MII_BUS_ID_SIZE, "%x", 0);
-#endif
- am->mii_bus.priv = am;
- am->mii_bus.dev = &pdev->dev;
+ am->mii_bus = mdiobus_alloc();
+ if (am->mii_bus == NULL) {
+ err = -ENOMEM;
+ goto err_iounmap;
+ }
+
+ am->mii_bus->name = "ag71xx_mdio";
+ am->mii_bus->read = ag71xx_mdio_read;
+ am->mii_bus->write = ag71xx_mdio_write;
+ am->mii_bus->reset = ag71xx_mdio_reset;
+ am->mii_bus->irq = am->mii_irq;
+ am->mii_bus->priv = am;
+ am->mii_bus->parent = &pdev->dev;
+ snprintf(am->mii_bus->id, MII_BUS_ID_SIZE, "%x", 0);