aboutsummaryrefslogtreecommitdiff
path: root/at76_usb.h
diff options
context:
space:
mode:
authorPavel Roskin <proski@gnu.org>2007-04-27 03:10:49 -0400
committerGuido Guenther <agx@bogon.sigxcpu.org>2007-04-27 10:23:21 +0200
commit775165672a6121aba5770ec52005d90e71cc9442 (patch)
tree670a626a1993722e5c7d92493400f0a699ec94e9 /at76_usb.h
parentd2b57bd2858cb74873f7d4ee77354be90185ef72 (diff)
[PATCH] Split workqueues into separate handlers
at76_defer_event() is too large and unmanageable. Use separate work queues for every task. This is a formal split with minimal formating and comment changes. Many layers of indirection can and should be eliminated later. Timers should be combined into delayed works. Signed-off-by: Pavel Roskin <proski@gnu.org>
Diffstat (limited to 'at76_usb.h')
-rw-r--r--at76_usb.h30
1 files changed, 13 insertions, 17 deletions
diff --git a/at76_usb.h b/at76_usb.h
index 9b4dbb7..996649e 100644
--- a/at76_usb.h
+++ b/at76_usb.h
@@ -387,20 +387,6 @@ enum infra_state {
MONITORING,
};
-#define AT76_DEVENT_CTRL_HALT 1
-#define AT76_DEVENT_NEW_BSS 2
-#define AT76_DEVENT_SET_PROMISC 3
-#define AT76_DEVENT_MGMT_TIMEOUT 4
-#define AT76_DEVENT_SCAN 5
-#define AT76_DEVENT_JOIN 6
-#define AT76_DEVENT_STARTIBSS 7
-#define AT76_DEVENT_SUBMIT_RX 8
-#define AT76_DEVENT_RESTART 9
-#define AT76_DEVENT_ASSOC_DONE 10
-#define AT76_DEVENT_EXTERNAL_FW 11
-#define AT76_DEVENT_INTERNAL_FW 12
-#define AT76_DEVENT_RESET_DEVICE 13
-
/* a description of a regulatory domain and the allowed channels */
struct reg_domain {
u16 code;
@@ -474,9 +460,19 @@ struct at76_priv {
int open_count; /* number of times this port has been opened */
struct semaphore sem; /* locks this structure */
- /* our deferred event queue */
- unsigned long devent_flags;
- struct work_struct devent_queue;
+ /* work queues */
+ struct work_struct work_assoc_done;
+ struct work_struct work_external_fw;
+ struct work_struct work_internal_fw;
+ struct work_struct work_join;
+ struct work_struct work_mgmt_timeout;
+ struct work_struct work_new_bss;
+ struct work_struct work_reset_device;
+ struct work_struct work_restart;
+ struct work_struct work_scan;
+ struct work_struct work_set_promisc;
+ struct work_struct work_start_ibss;
+ struct work_struct work_submit_rx;
int nr_submit_rx_tries; /* number of tries to submit an rx urb left */
struct tasklet_struct tasklet;