select MAC80211_LEDS
        select LEDS_CLASS
        select NEW_LEDS
-       select AVERAGE
        select ATH5K_AHB if ATH25
        select ATH5K_PCI if !ATH25
        ---help---
 
 ath5k_ani_raise_immunity(struct ath5k_hw *ah, struct ath5k_ani_state *as,
                         bool ofdm_trigger)
 {
-       int rssi = ewma_read(&ah->ah_beacon_rssi_avg);
+       int rssi = ewma_beacon_rssi_read(&ah->ah_beacon_rssi_avg);
 
        ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "raise immunity (%s)",
                ofdm_trigger ? "ODFM" : "CCK");
 static void
 ath5k_ani_lower_immunity(struct ath5k_hw *ah, struct ath5k_ani_state *as)
 {
-       int rssi = ewma_read(&ah->ah_beacon_rssi_avg);
+       int rssi = ewma_beacon_rssi_read(&ah->ah_beacon_rssi_avg);
 
        ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "lower immunity");
 
 
 #define ATH5K_TXQ_LEN_MAX      (ATH_TXBUF / 4)         /* bufs per queue */
 #define ATH5K_TXQ_LEN_LOW      (ATH5K_TXQ_LEN_MAX / 2) /* low mark */
 
+DECLARE_EWMA(beacon_rssi, 1024, 8)
+
 /* Driver state associated with an instance of a device */
 struct ath5k_hw {
        struct ath_common       common;
        struct ath5k_nfcal_hist ah_nfcal_hist;
 
        /* average beacon RSSI in our BSS (used by ANI) */
-       struct ewma             ah_beacon_rssi_avg;
+       struct ewma_beacon_rssi ah_beacon_rssi_avg;
 
        /* noise floor from last periodic calibration */
        s32                     ah_noise_floor;
 
        trace_ath5k_rx(ah, skb);
 
        if (ath_is_mybeacon(common, (struct ieee80211_hdr *)skb->data)) {
-               ewma_add(&ah->ah_beacon_rssi_avg, rs->rs_rssi);
+               ewma_beacon_rssi_add(&ah->ah_beacon_rssi_avg, rs->rs_rssi);
 
                /* check beacons in IBSS mode */
                if (ah->opmode == NL80211_IFTYPE_ADHOC)
        ah->ah_cal_next_short = jiffies +
                msecs_to_jiffies(ATH5K_TUNE_CALIBRATION_INTERVAL_SHORT);
 
-       ewma_init(&ah->ah_beacon_rssi_avg, 1024, 8);
+       ewma_beacon_rssi_init(&ah->ah_beacon_rssi_avg);
 
        /* clear survey data and cycle counters */
        memset(&ah->survey, 0, sizeof(ah->survey));
 
                        st->mib_intr);
        len += snprintf(buf + len, sizeof(buf) - len,
                        "beacon RSSI average:\t%d\n",
-                       (int)ewma_read(&ah->ah_beacon_rssi_avg));
+                       (int)ewma_beacon_rssi_read(&ah->ah_beacon_rssi_avg));
 
 #define CC_PRINT(_struct, _field) \
        _struct._field, \