summaryrefslogtreecommitdiffstats
path: root/target/linux/atheros/patches-2.6.37/110-ar2313_ethernet.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/atheros/patches-2.6.37/110-ar2313_ethernet.patch')
-rw-r--r--target/linux/atheros/patches-2.6.37/110-ar2313_ethernet.patch17
1 files changed, 16 insertions, 1 deletions
diff --git a/target/linux/atheros/patches-2.6.37/110-ar2313_ethernet.patch b/target/linux/atheros/patches-2.6.37/110-ar2313_ethernet.patch
index 132fd01318..42d9229b11 100644
--- a/target/linux/atheros/patches-2.6.37/110-ar2313_ethernet.patch
+++ b/target/linux/atheros/patches-2.6.37/110-ar2313_ethernet.patch
@@ -25,7 +25,7 @@
obj-$(CONFIG_DECLANCE) += declance.o
--- /dev/null
+++ b/drivers/net/ar231x.c
-@@ -0,0 +1,1278 @@
+@@ -0,0 +1,1293 @@
+/*
+ * ar231x.c: Linux driver for the Atheros AR231x Ethernet device.
+ *
@@ -182,6 +182,18 @@
+#define ERR(fmt, args...) printk("%s: " fmt, __func__, ##args)
+#endif
+
++#ifdef CONFIG_NET_POLL_CONTROLLER
++static void
++ar231x_netpoll(struct net_device *dev)
++{
++ unsigned long flags;
++
++ local_irq_save(flags);
++ ar231x_interrupt(dev->irq, dev);
++ local_irq_restore(flags);
++}
++#endif
++
+static const struct net_device_ops ar231x_ops = {
+ .ndo_open = ar231x_open,
+ .ndo_stop = ar231x_close,
@@ -192,6 +204,9 @@
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_set_mac_address = eth_mac_addr,
+ .ndo_tx_timeout = ar231x_tx_timeout,
++#ifdef CONFIG_NET_POLL_CONTROLLER
++ .ndo_poll_controller = ar231x_netpoll,
++#endif
+};
+
+int __init ar231x_probe(struct platform_device *pdev)