1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-28 01:06:14 +02:00

ar71xx: ag71xx: Add netpoll support

This patch adds support for polling interrupts, used by
netconsole and the likes.

Tested on d-link dir-615 C1 using netconsole.

Signed-off-by: Pat Erley <pat-lkml@erley.org>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20503 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
juhosg 2010-03-27 13:05:17 +00:00
parent 473f46f9cf
commit afa983c991

View File

@ -926,6 +926,20 @@ static void ag71xx_set_multicast_list(struct net_device *dev)
/* TODO */ /* TODO */
} }
#ifdef CONFIG_NET_POLL_CONTROLLER
/*
* Polling 'interrupt' - used by things like netconsole to send skbs
* without having to re-enable interrupts. It's not called while
* the interrupt routine is executing.
*/
static void ag71xx_netpoll(struct net_device *dev)
{
disable_irq(dev->irq);
ag71xx_interrupt(dev->irq, dev);
enable_irq(dev->irq);
}
#endif
static const struct net_device_ops ag71xx_netdev_ops = { static const struct net_device_ops ag71xx_netdev_ops = {
.ndo_open = ag71xx_open, .ndo_open = ag71xx_open,
.ndo_stop = ag71xx_stop, .ndo_stop = ag71xx_stop,
@ -936,6 +950,9 @@ static const struct net_device_ops ag71xx_netdev_ops = {
.ndo_change_mtu = eth_change_mtu, .ndo_change_mtu = eth_change_mtu,
.ndo_set_mac_address = eth_mac_addr, .ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr, .ndo_validate_addr = eth_validate_addr,
#ifdef CONFIG_NET_POLL_CONTROLLER
.ndo_poll_controller = ag71xx_netpoll,
#endif
}; };
static int __init ag71xx_probe(struct platform_device *pdev) static int __init ag71xx_probe(struct platform_device *pdev)