diff options
author | Vasanthakumar Thiagarajan <vasanth@atheros.com> | 2009-09-01 08:16:33 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-09-01 12:48:21 -0400 |
commit | 8f43161aa6bd7bfed0905d3de6cc660fd6b9c2bc (patch) | |
tree | 653c2d6114fcd198a359f90234d63bb9ec6c9800 | |
parent | ebb8e1d78c2f8b1737627ec260d7e39c4bd47385 (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>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/btcoex.c | 10 |
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 | ||
136 | static int ath_init_btcoex_info(struct ath_hw *hw, | 134 | static int ath_init_btcoex_info(struct ath_hw *hw, |