diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath5k/base.c')
-rw-r--r-- | drivers/net/wireless/ath/ath5k/base.c | 15 |
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"); | |||
87 | static int ath5k_init(struct ieee80211_hw *hw); | 87 | static int ath5k_init(struct ieee80211_hw *hw); |
88 | static int ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan, | 88 | static int ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan, |
89 | bool skip_pcu); | 89 | bool skip_pcu); |
90 | int ath5k_beacon_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif); | ||
91 | void ath5k_beacon_update_timers(struct ath5k_softc *sc, u64 bc_tsf); | ||
92 | 90 | ||
93 | /* Known SREVs */ | 91 | /* Known SREVs */ |
94 | static const struct ath5k_srev_name srev_names[] = { | 92 | static 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 | ||
2164 | irqreturn_t | 2162 | static irqreturn_t |
2165 | ath5k_intr(int irq, void *dev_id) | 2163 | ath5k_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 | ||
2618 | static void stop_tasklets(struct ath5k_softc *sc) | 2616 | static 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 | ||
2968 | bool | 2967 | bool |
2969 | ath_any_vif_assoc(struct ath5k_softc *sc) | 2968 | ath5k_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 | ||
2982 | void | 2981 | void |
2983 | set_beacon_filter(struct ieee80211_hw *hw, bool enable) | 2982 | ath5k_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; |