diff options
author | Jan-Bernd Themann <ossthema@de.ibm.com> | 2007-07-23 10:05:03 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-07-24 16:28:42 -0400 |
commit | 8d22c9711aa5e704fc5f89027f5cf64838767c98 (patch) | |
tree | e1ec4ca708edc0e8922351e8af520606426dba3c | |
parent | dde9f93c205a791c5647c14d43003c578ebf6f2d (diff) |
eHEA: net_poll support
net_poll support for eHEA added
Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/net/ehea/ehea.h | 2 | ||||
-rw-r--r-- | drivers/net/ehea/ehea_main.c | 22 |
2 files changed, 22 insertions, 2 deletions
diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h index 489c8b260dd8..8ee2c2c86b42 100644 --- a/drivers/net/ehea/ehea.h +++ b/drivers/net/ehea/ehea.h | |||
@@ -39,7 +39,7 @@ | |||
39 | #include <asm/io.h> | 39 | #include <asm/io.h> |
40 | 40 | ||
41 | #define DRV_NAME "ehea" | 41 | #define DRV_NAME "ehea" |
42 | #define DRV_VERSION "EHEA_0071" | 42 | #define DRV_VERSION "EHEA_0072" |
43 | 43 | ||
44 | /* eHEA capability flags */ | 44 | /* eHEA capability flags */ |
45 | #define DLPAR_PORT_ADD_REM 1 | 45 | #define DLPAR_PORT_ADD_REM 1 |
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index 4c70a9301c1b..58702f54c3fb 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c | |||
@@ -589,6 +589,23 @@ static int ehea_poll(struct net_device *dev, int *budget) | |||
589 | return 1; | 589 | return 1; |
590 | } | 590 | } |
591 | 591 | ||
592 | #ifdef CONFIG_NET_POLL_CONTROLLER | ||
593 | static void ehea_netpoll(struct net_device *dev) | ||
594 | { | ||
595 | struct ehea_port *port = netdev_priv(dev); | ||
596 | |||
597 | netif_rx_schedule(port->port_res[0].d_netdev); | ||
598 | } | ||
599 | #endif | ||
600 | |||
601 | static int ehea_poll_firstqueue(struct net_device *dev, int *budget) | ||
602 | { | ||
603 | struct ehea_port *port = netdev_priv(dev); | ||
604 | struct net_device *d_dev = port->port_res[0].d_netdev; | ||
605 | |||
606 | return ehea_poll(d_dev, budget); | ||
607 | } | ||
608 | |||
592 | static irqreturn_t ehea_recv_irq_handler(int irq, void *param) | 609 | static irqreturn_t ehea_recv_irq_handler(int irq, void *param) |
593 | { | 610 | { |
594 | struct ehea_port_res *pr = param; | 611 | struct ehea_port_res *pr = param; |
@@ -2626,7 +2643,10 @@ struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter, | |||
2626 | memcpy(dev->dev_addr, &port->mac_addr, ETH_ALEN); | 2643 | memcpy(dev->dev_addr, &port->mac_addr, ETH_ALEN); |
2627 | 2644 | ||
2628 | dev->open = ehea_open; | 2645 | dev->open = ehea_open; |
2629 | dev->poll = ehea_poll; | 2646 | dev->poll = ehea_poll_firstqueue; |
2647 | #ifdef CONFIG_NET_POLL_CONTROLLER | ||
2648 | dev->poll_controller = ehea_netpoll; | ||
2649 | #endif | ||
2630 | dev->weight = 64; | 2650 | dev->weight = 64; |
2631 | dev->stop = ehea_stop; | 2651 | dev->stop = ehea_stop; |
2632 | dev->hard_start_xmit = ehea_start_xmit; | 2652 | dev->hard_start_xmit = ehea_start_xmit; |