diff options
author | Pavel Roskin <proski@gnu.org> | 2007-04-27 03:10:49 -0400 |
---|---|---|
committer | Guido Guenther <agx@bogon.sigxcpu.org> | 2007-04-27 10:23:21 +0200 |
commit | 775165672a6121aba5770ec52005d90e71cc9442 (patch) | |
tree | 670a626a1993722e5c7d92493400f0a699ec94e9 /at76_usb.h | |
parent | d2b57bd2858cb74873f7d4ee77354be90185ef72 (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.h | 30 |
1 files changed, 13 insertions, 17 deletions
@@ -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; |