aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h
diff options
context:
space:
mode:
authorRoland Vossen <rvossen@broadcom.com>2011-10-12 20:51:12 +0200
committerJohn W. Linville <linville@tuxdriver.com>2011-10-14 14:48:16 -0400
commit2a7fc5b1c17a6055fe2753ebacaf43b5780bcf99 (patch)
treebae75a98fea99de15a4b38b4d6386596a820ecd3 /drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h
parentbrcm80211: smac: removed redundant timer function parameters (diff)
downloadlinux-dev-2a7fc5b1c17a6055fe2753ebacaf43b5780bcf99.tar.xz
linux-dev-2a7fc5b1c17a6055fe2753ebacaf43b5780bcf99.zip
brcm80211: smac: decreased timer callback irq level
Timer functions were called at soft-irq level, leading to the limitation that mutexes could not be used. Lifted this limitation by migrating to work queues. Reviewed-by: Alwin Beukers <alwin@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to '')
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h
index 91e5f2ac56cf..177f0e44e4b6 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h
+++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h
@@ -19,6 +19,8 @@
#include <linux/timer.h>
#include <linux/interrupt.h>
+#include <linux/workqueue.h>
+
#include "ucode_loader.h"
/*
* Starting index for 5G rates in the
@@ -30,14 +32,14 @@
#define BRCMS_SET_SHORTSLOT_OVERRIDE 146
struct brcms_timer {
- struct timer_list timer;
+ struct delayed_work dly_wrk;
struct brcms_info *wl;
- void (*fn) (void *);
- void *arg; /* argument to fn */
+ void (*fn) (void *); /* function called upon expiration */
+ void *arg; /* fixed argument provided to called function */
uint ms;
bool periodic;
- bool set;
- struct brcms_timer *next;
+ bool set; /* indicates if timer is active */
+ struct brcms_timer *next; /* for freeing on unload */
#ifdef BCMDBG
char *name; /* Description of the timer */
#endif