aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath5k/base.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath5k/base.c')
-rw-r--r--drivers/net/wireless/ath/ath5k/base.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index b6c5d3715b96..a6623ddfdefe 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -87,8 +87,6 @@ MODULE_LICENSE("Dual BSD/GPL");
87static int ath5k_init(struct ieee80211_hw *hw); 87static int ath5k_init(struct ieee80211_hw *hw);
88static int ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan, 88static int ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan,
89 bool skip_pcu); 89 bool skip_pcu);
90int ath5k_beacon_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
91void ath5k_beacon_update_timers(struct ath5k_softc *sc, u64 bc_tsf);
92 90
93/* Known SREVs */ 91/* Known SREVs */
94static const struct ath5k_srev_name srev_names[] = { 92static const struct ath5k_srev_name srev_names[] = {
@@ -2161,7 +2159,7 @@ ath5k_schedule_tx(struct ath5k_softc *sc)
2161 tasklet_schedule(&sc->txtq); 2159 tasklet_schedule(&sc->txtq);
2162} 2160}
2163 2161
2164irqreturn_t 2162static irqreturn_t
2165ath5k_intr(int irq, void *dev_id) 2163ath5k_intr(int irq, void *dev_id)
2166{ 2164{
2167 struct ath5k_softc *sc = dev_id; 2165 struct ath5k_softc *sc = dev_id;
@@ -2615,7 +2613,7 @@ done:
2615 return ret; 2613 return ret;
2616} 2614}
2617 2615
2618static void stop_tasklets(struct ath5k_softc *sc) 2616static void ath5k_stop_tasklets(struct ath5k_softc *sc)
2619{ 2617{
2620 sc->rx_pending = false; 2618 sc->rx_pending = false;
2621 sc->tx_pending = false; 2619 sc->tx_pending = false;
@@ -2669,7 +2667,7 @@ ath5k_stop_hw(struct ath5k_softc *sc)
2669 mmiowb(); 2667 mmiowb();
2670 mutex_unlock(&sc->lock); 2668 mutex_unlock(&sc->lock);
2671 2669
2672 stop_tasklets(sc); 2670 ath5k_stop_tasklets(sc);
2673 2671
2674 cancel_delayed_work_sync(&sc->tx_complete_work); 2672 cancel_delayed_work_sync(&sc->tx_complete_work);
2675 2673
@@ -2697,7 +2695,7 @@ ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan,
2697 2695
2698 ath5k_hw_set_imr(ah, 0); 2696 ath5k_hw_set_imr(ah, 0);
2699 synchronize_irq(sc->irq); 2697 synchronize_irq(sc->irq);
2700 stop_tasklets(sc); 2698 ath5k_stop_tasklets(sc);
2701 2699
2702 /* Save ani mode and disable ANI during 2700 /* Save ani mode and disable ANI during
2703 * reset. If we don't we might get false 2701 * reset. If we don't we might get false
@@ -2962,11 +2960,12 @@ ath5k_deinit_softc(struct ath5k_softc *sc)
2962 * state and potentially want to use them. 2960 * state and potentially want to use them.
2963 */ 2961 */
2964 ath5k_hw_deinit(sc->ah); 2962 ath5k_hw_deinit(sc->ah);
2963 kfree(sc->ah);
2965 free_irq(sc->irq, sc); 2964 free_irq(sc->irq, sc);
2966} 2965}
2967 2966
2968bool 2967bool
2969ath_any_vif_assoc(struct ath5k_softc *sc) 2968ath5k_any_vif_assoc(struct ath5k_softc *sc)
2970{ 2969{
2971 struct ath5k_vif_iter_data iter_data; 2970 struct ath5k_vif_iter_data iter_data;
2972 iter_data.hw_macaddr = NULL; 2971 iter_data.hw_macaddr = NULL;
@@ -2980,7 +2979,7 @@ ath_any_vif_assoc(struct ath5k_softc *sc)
2980} 2979}
2981 2980
2982void 2981void
2983set_beacon_filter(struct ieee80211_hw *hw, bool enable) 2982ath5k_set_beacon_filter(struct ieee80211_hw *hw, bool enable)
2984{ 2983{
2985 struct ath5k_softc *sc = hw->priv; 2984 struct ath5k_softc *sc = hw->priv;
2986 struct ath5k_hw *ah = sc->ah; 2985 struct ath5k_hw *ah = sc->ah;