mdio: Move allocation of interrupts into core
Have mdio_alloc() create the array of interrupt numbers, and initialize it to POLLING. This is what most MDIO drivers want, so allowing code to be removed from the drivers. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
35d2aeac98
commit
e7f4dc3536
@@ -337,7 +337,6 @@ struct temac_local {
|
||||
|
||||
/* MDIO bus data */
|
||||
struct mii_bus *mii_bus; /* MII bus reference */
|
||||
int mdio_irqs[PHY_MAX_ADDR]; /* IRQs table for MDIO bus */
|
||||
|
||||
/* IO registers, dma functions and IRQs */
|
||||
void __iomem *regs;
|
||||
|
@@ -92,7 +92,6 @@ int temac_mdio_setup(struct temac_local *lp, struct device_node *np)
|
||||
bus->read = temac_mdio_read;
|
||||
bus->write = temac_mdio_write;
|
||||
bus->parent = lp->dev;
|
||||
bus->irq = lp->mdio_irqs; /* preallocated IRQ table */
|
||||
|
||||
lp->mii_bus = bus;
|
||||
|
||||
@@ -114,7 +113,6 @@ int temac_mdio_setup(struct temac_local *lp, struct device_node *np)
|
||||
void temac_mdio_teardown(struct temac_local *lp)
|
||||
{
|
||||
mdiobus_unregister(lp->mii_bus);
|
||||
kfree(lp->mii_bus->irq);
|
||||
mdiobus_free(lp->mii_bus);
|
||||
lp->mii_bus = NULL;
|
||||
}
|
||||
|
@@ -385,7 +385,6 @@ struct axidma_bd {
|
||||
* @phy_dev: Pointer to PHY device structure attached to the axienet_local
|
||||
* @phy_node: Pointer to device node structure
|
||||
* @mii_bus: Pointer to MII bus structure
|
||||
* @mdio_irqs: IRQs table for MDIO bus required in mii_bus structure
|
||||
* @regs: Base address for the axienet_local device address space
|
||||
* @dma_regs: Base address for the axidma device address space
|
||||
* @dma_err_tasklet: Tasklet structure to process Axi DMA errors
|
||||
@@ -426,7 +425,6 @@ struct axienet_local {
|
||||
|
||||
/* MDIO bus data */
|
||||
struct mii_bus *mii_bus; /* MII bus reference */
|
||||
int mdio_irqs[PHY_MAX_ADDR]; /* IRQs table for MDIO bus */
|
||||
|
||||
/* IO registers, dma functions and IRQs */
|
||||
void __iomem *regs;
|
||||
|
@@ -212,7 +212,6 @@ issue:
|
||||
bus->read = axienet_mdio_read;
|
||||
bus->write = axienet_mdio_write;
|
||||
bus->parent = lp->dev;
|
||||
bus->irq = lp->mdio_irqs; /* preallocated IRQ table */
|
||||
lp->mii_bus = bus;
|
||||
|
||||
ret = of_mdiobus_register(bus, np1);
|
||||
@@ -232,7 +231,6 @@ issue:
|
||||
void axienet_mdio_teardown(struct axienet_local *lp)
|
||||
{
|
||||
mdiobus_unregister(lp->mii_bus);
|
||||
kfree(lp->mii_bus->irq);
|
||||
mdiobus_free(lp->mii_bus);
|
||||
lp->mii_bus = NULL;
|
||||
}
|
||||
|
@@ -114,7 +114,6 @@
|
||||
* @phy_dev: pointer to the PHY device
|
||||
* @phy_node: pointer to the PHY device node
|
||||
* @mii_bus: pointer to the MII bus
|
||||
* @mdio_irqs: IRQs table for MDIO bus
|
||||
* @last_link: last link status
|
||||
* @has_mdio: indicates whether MDIO is included in the HW
|
||||
*/
|
||||
@@ -135,7 +134,6 @@ struct net_local {
|
||||
struct device_node *phy_node;
|
||||
|
||||
struct mii_bus *mii_bus;
|
||||
int mdio_irqs[PHY_MAX_ADDR];
|
||||
|
||||
int last_link;
|
||||
bool has_mdio;
|
||||
@@ -852,7 +850,6 @@ static int xemaclite_mdio_setup(struct net_local *lp, struct device *dev)
|
||||
bus->read = xemaclite_mdio_read;
|
||||
bus->write = xemaclite_mdio_write;
|
||||
bus->parent = dev;
|
||||
bus->irq = lp->mdio_irqs; /* preallocated IRQ table */
|
||||
|
||||
lp->mii_bus = bus;
|
||||
|
||||
@@ -1196,7 +1193,6 @@ static int xemaclite_of_remove(struct platform_device *of_dev)
|
||||
/* Un-register the mii_bus, if configured */
|
||||
if (lp->has_mdio) {
|
||||
mdiobus_unregister(lp->mii_bus);
|
||||
kfree(lp->mii_bus->irq);
|
||||
mdiobus_free(lp->mii_bus);
|
||||
lp->mii_bus = NULL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user