aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath
diff options
context:
space:
mode:
authorVasanthakumar Thiagarajan <vasanth@atheros.com>2009-09-01 08:16:33 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-09-01 12:48:21 -0400
commit8f43161aa6bd7bfed0905d3de6cc660fd6b9c2bc (patch)
tree653c2d6114fcd198a359f90234d63bb9ec6c9800 /drivers/net/wireless/ath
parentebb8e1d78c2f8b1737627ec260d7e39c4bd47385 (diff)
ath9k: Call spin_lock_bh() on btcoex_lock
As generic hw timer interrupt handler is moved to tasklet, we no more need to call spin_lock_irqsave(). Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath')
-rw-r--r--drivers/net/wireless/ath/ath9k/btcoex.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/ath9k/btcoex.c b/drivers/net/wireless/ath/ath9k/btcoex.c
index 8fb356748823..e8bfb01ee78a 100644
--- a/drivers/net/wireless/ath/ath9k/btcoex.c
+++ b/drivers/net/wireless/ath/ath9k/btcoex.c
@@ -84,15 +84,14 @@ static void ath_btcoex_period_timer(unsigned long data)
84{ 84{
85 struct ath_softc *sc = (struct ath_softc *) data; 85 struct ath_softc *sc = (struct ath_softc *) data;
86 struct ath_btcoex_info *btinfo = &sc->btcoex_info; 86 struct ath_btcoex_info *btinfo = &sc->btcoex_info;
87 unsigned long flags;
88 87
89 ath_detect_bt_priority(sc); 88 ath_detect_bt_priority(sc);
90 89
91 spin_lock_irqsave(&btinfo->btcoex_lock, flags); 90 spin_lock_bh(&btinfo->btcoex_lock);
92 91
93 ath_btcoex_bt_stomp(sc, btinfo, btinfo->bt_stomp_type); 92 ath_btcoex_bt_stomp(sc, btinfo, btinfo->bt_stomp_type);
94 93
95 spin_unlock_irqrestore(&btinfo->btcoex_lock, flags); 94 spin_unlock_bh(&btinfo->btcoex_lock);
96 95
97 if (btinfo->btcoex_period != btinfo->btcoex_no_stomp) { 96 if (btinfo->btcoex_period != btinfo->btcoex_no_stomp) {
98 if (btinfo->hw_timer_enabled) 97 if (btinfo->hw_timer_enabled)
@@ -119,18 +118,17 @@ static void ath_btcoex_no_stomp_timer(void *arg)
119{ 118{
120 struct ath_softc *sc = (struct ath_softc *)arg; 119 struct ath_softc *sc = (struct ath_softc *)arg;
121 struct ath_btcoex_info *btinfo = &sc->btcoex_info; 120 struct ath_btcoex_info *btinfo = &sc->btcoex_info;
122 unsigned long flags;
123 121
124 DPRINTF(sc, ATH_DBG_BTCOEX, "no stomp timer running \n"); 122 DPRINTF(sc, ATH_DBG_BTCOEX, "no stomp timer running \n");
125 123
126 spin_lock_irqsave(&btinfo->btcoex_lock, flags); 124 spin_lock_bh(&btinfo->btcoex_lock);
127 125
128 if (btinfo->bt_stomp_type == ATH_BTCOEX_STOMP_LOW) 126 if (btinfo->bt_stomp_type == ATH_BTCOEX_STOMP_LOW)
129 ath_btcoex_bt_stomp(sc, btinfo, ATH_BTCOEX_STOMP_NONE); 127 ath_btcoex_bt_stomp(sc, btinfo, ATH_BTCOEX_STOMP_NONE);
130 else if (btinfo->bt_stomp_type == ATH_BTCOEX_STOMP_ALL) 128 else if (btinfo->bt_stomp_type == ATH_BTCOEX_STOMP_ALL)
131 ath_btcoex_bt_stomp(sc, btinfo, ATH_BTCOEX_STOMP_LOW); 129 ath_btcoex_bt_stomp(sc, btinfo, ATH_BTCOEX_STOMP_LOW);
132 130
133 spin_unlock_irqrestore(&btinfo->btcoex_lock, flags); 131 spin_unlock_bh(&btinfo->btcoex_lock);
134} 132}
135 133
136static int ath_init_btcoex_info(struct ath_hw *hw, 134static int ath_init_btcoex_info(struct ath_hw *hw,