aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/orinoco.h
diff options
context:
space:
mode:
authorDavid Kilroy <kilroyd@gmail.com>2008-08-21 18:28:04 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-08-22 19:28:06 -0400
commit31afcef385bb8bf528c6fbe05b359af9f456f02a (patch)
treec6032f5f81c250cf02bbb6d544bfa9866c5cfc67 /drivers/net/wireless/orinoco.h
parent06009fda9fde1b97074ab3d932d0468396bf5d10 (diff)
orinoco: Process bulk of receive interrupt in a tasklet
Read the packet data off the hardware and straight into an skb in the interrupt. We have to do this in case we don't process the tasklet in time. Signed-off-by: David Kilroy <kilroyd@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/orinoco.h')
-rw-r--r--drivers/net/wireless/orinoco.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/wireless/orinoco.h b/drivers/net/wireless/orinoco.h
index bfab88f5136..e0c9be3daa3 100644
--- a/drivers/net/wireless/orinoco.h
+++ b/drivers/net/wireless/orinoco.h
@@ -9,6 +9,7 @@
9 9
10#define DRIVER_VERSION "0.15" 10#define DRIVER_VERSION "0.15"
11 11
12#include <linux/interrupt.h>
12#include <linux/netdevice.h> 13#include <linux/netdevice.h>
13#include <linux/wireless.h> 14#include <linux/wireless.h>
14#include <net/iw_handler.h> 15#include <net/iw_handler.h>
@@ -57,6 +58,14 @@ struct xbss_element {
57 struct list_head list; 58 struct list_head list;
58}; 59};
59 60
61struct hermes_rx_descriptor;
62
63struct orinoco_rx_data {
64 struct hermes_rx_descriptor *desc;
65 struct sk_buff *skb;
66 struct list_head list;
67};
68
60struct orinoco_private { 69struct orinoco_private {
61 void *card; /* Pointer to card dependent structure */ 70 void *card; /* Pointer to card dependent structure */
62 struct device *dev; 71 struct device *dev;
@@ -68,6 +77,11 @@ struct orinoco_private {
68 int hw_unavailable; 77 int hw_unavailable;
69 struct work_struct reset_work; 78 struct work_struct reset_work;
70 79
80 /* Interrupt tasklets */
81 struct tasklet_struct rx_tasklet;
82 struct list_head rx_list;
83 struct orinoco_rx_data *rx_data;
84
71 /* driver state */ 85 /* driver state */
72 int open; 86 int open;
73 u16 last_linkstatus; 87 u16 last_linkstatus;