| Submitter | David Brownell |
|---|---|
| Date | Oct. 27, 2008, 9:11 p.m. |
| Message ID | <200810271411.34492.david-b@pacbell.net> |
| Download | mbox | patch |
| Permalink | /patch/5969/ |
| State | Accepted |
| Delegated to: | Jeff Garzik |
| Headers | show |
Comments
David Brownell wrote: > From: David Brownell <dbrownell@users.sourceforge.net> > > When the at91_ether driver is using a GPIO for its PHY interrupt, > be sure to request (and later, if needed, free) that GPIO. > > Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> > --- > drivers/net/arm/at91_ether.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) applied -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Patch
--- a/drivers/net/arm/at91_ether.c +++ b/drivers/net/arm/at91_ether.c @@ -1080,7 +1080,8 @@ static int __init at91ether_setup(unsign init_timer(&lp->check_timer); lp->check_timer.data = (unsigned long)dev; lp->check_timer.function = at91ether_check_link; - } + } else if (lp->board_data.phy_irq_pin >= 32) + gpio_request(lp->board_data.phy_irq_pin, "ethernet_phy"); /* Display ethernet banner */ printk(KERN_INFO "%s: AT91 ethernet at 0x%08x int=%d %s%s (%s)\n", @@ -1167,6 +1168,9 @@ static int __devexit at91ether_remove(st struct net_device *dev = platform_get_drvdata(pdev); struct at91_private *lp = netdev_priv(dev); + if (lp->board_data.phy_irq_pin >= 32) + gpio_free(lp->board_data.phy_irq_pin); + unregister_netdev(dev); free_irq(dev->irq, dev); dma_free_coherent(NULL, sizeof(struct recv_desc_bufs), lp->dlist, (dma_addr_t)lp->dlist_phys);