Commit 6f519165 authored by Deepak Saxena's avatar Deepak Saxena Committed by Linus Torvalds

[PATCH] cs89x0: add netpoll support

Signed-off-by: default avatarDeepak Saxena <dsaxena@plexity.net>
Cc: Matt Mackall <mpm@selenic.com>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent fac92bec
...@@ -247,6 +247,9 @@ static int get_eeprom_data(struct net_device *dev, int off, int len, int *buffer ...@@ -247,6 +247,9 @@ static int get_eeprom_data(struct net_device *dev, int off, int len, int *buffer
static int get_eeprom_cksum(int off, int len, int *buffer); static int get_eeprom_cksum(int off, int len, int *buffer);
static int set_mac_address(struct net_device *dev, void *addr); static int set_mac_address(struct net_device *dev, void *addr);
static void count_rx_errors(int status, struct net_local *lp); static void count_rx_errors(int status, struct net_local *lp);
#ifdef CONFIG_NET_POLL_CONTROLLER
static void net_poll_controller(struct net_device *dev);
#endif
#if ALLOW_DMA #if ALLOW_DMA
static void get_dma_channel(struct net_device *dev); static void get_dma_channel(struct net_device *dev);
static void release_dma_buff(struct net_local *lp); static void release_dma_buff(struct net_local *lp);
...@@ -405,6 +408,19 @@ get_eeprom_cksum(int off, int len, int *buffer) ...@@ -405,6 +408,19 @@ get_eeprom_cksum(int off, int len, int *buffer)
return -1; return -1;
} }
#ifdef CONFIG_NET_POLL_CONTROLLER
/*
* Polling receive - used by netconsole and other diagnostic tools
* to allow network i/o with interrupts disabled.
*/
static void net_poll_controller(struct net_device *dev)
{
disable_irq(dev->irq);
net_interrupt(dev->irq, dev, NULL);
enable_irq(dev->irq);
}
#endif
/* This is the real probe routine. Linux has a history of friendly device /* This is the real probe routine. Linux has a history of friendly device
probes on the ISA bus. A good device probes avoids doing writes, and probes on the ISA bus. A good device probes avoids doing writes, and
verifies that the correct device exists and functions. verifies that the correct device exists and functions.
...@@ -760,6 +776,9 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular) ...@@ -760,6 +776,9 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
dev->get_stats = net_get_stats; dev->get_stats = net_get_stats;
dev->set_multicast_list = set_multicast_list; dev->set_multicast_list = set_multicast_list;
dev->set_mac_address = set_mac_address; dev->set_mac_address = set_mac_address;
#ifdef CONFIG_NET_POLL_CONTROLLER
dev->poll_controller = net_poll_controller;
#endif
printk("\n"); printk("\n");
if (net_debug) if (net_debug)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment