浏览代码

[PATCH] ixp2000: add netpoll support

Add netpoll support to the ixp2000 driver.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Lennert Buytenhek 20 年之前
父节点
当前提交
8ce51d69b7
共有 1 个文件被更改,包括 12 次插入0 次删除
  1. 12 0
      drivers/net/ixp2000/ixpdev.c

+ 12 - 0
drivers/net/ixp2000/ixpdev.c

@@ -218,6 +218,15 @@ static irqreturn_t ixpdev_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 	return IRQ_HANDLED;
 	return IRQ_HANDLED;
 }
 }
 
 
+#ifdef CONFIG_NET_POLL_CONTROLLER
+static void ixpdev_poll_controller(struct net_device *dev)
+{
+	disable_irq(IRQ_IXP2000_THDA0);
+	ixpdev_interrupt(IRQ_IXP2000_THDA0, dev, NULL);
+	enable_irq(IRQ_IXP2000_THDA0);
+}
+#endif
+
 static int ixpdev_open(struct net_device *dev)
 static int ixpdev_open(struct net_device *dev)
 {
 {
 	struct ixpdev_priv *ip = netdev_priv(dev);
 	struct ixpdev_priv *ip = netdev_priv(dev);
@@ -268,6 +277,9 @@ struct net_device *ixpdev_alloc(int channel, int sizeof_priv)
 	dev->poll = ixpdev_poll;
 	dev->poll = ixpdev_poll;
 	dev->open = ixpdev_open;
 	dev->open = ixpdev_open;
 	dev->stop = ixpdev_close;
 	dev->stop = ixpdev_close;
+#ifdef CONFIG_NET_POLL_CONTROLLER
+	dev->poll_controller = ixpdev_poll_controller;
+#endif
 
 
 	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
 	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
 	dev->weight = 64;
 	dev->weight = 64;