X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fnet%2Farm%2Fam79c961a.c;h=9b659e3c8d674280bc283dd99f7a872c7b2b7d0d;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=6b28a3d9b2fbd099fa54014347669509287572c4;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/net/arm/am79c961a.c b/drivers/net/arm/am79c961a.c index 6b28a3d9b..9b659e3c8 100644 --- a/drivers/net/arm/am79c961a.c +++ b/drivers/net/arm/am79c961a.c @@ -28,9 +28,9 @@ #include #include #include +#include #include -#include #include #include #include @@ -630,6 +630,16 @@ am79c961_interrupt(int irq, void *dev_id, struct pt_regs *regs) return IRQ_RETVAL(handled); } +#ifdef CONFIG_NET_POLL_CONTROLLER +static void am79c961_poll_controller(struct net_device *dev) +{ + unsigned long flags; + local_irq_save(flags); + am79c961_interrupt(dev->irq, dev, NULL); + local_irq_restore(flags); +} +#endif + /* * Initialise the chip. Note that we always expect * to be entered with interrupts enabled. @@ -721,6 +731,9 @@ static int __init am79c961_init(void) dev->get_stats = am79c961_getstats; dev->set_multicast_list = am79c961_setmulticastlist; dev->tx_timeout = am79c961_timeout; +#ifdef CONFIG_NET_POLL_CONTROLLER + dev->poll_controller = am79c961_poll_controller; +#endif ret = register_netdev(dev); if (ret == 0)