ath9k: move ath9k_process_rate to common.c
authorOleksij Rempel <linux@rempel-privat.de>
Tue, 4 Feb 2014 09:27:40 +0000 (10:27 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 12 Feb 2014 20:35:57 +0000 (15:35 -0500)
we can reuse this function in ath9k_htc

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/common.c
drivers/net/wireless/ath/ath9k/common.h
drivers/net/wireless/ath/ath9k/recv.c

index 7028c52fe32e1537b48e2f4ed2000fb7b90da4f6..120fd46edf0f989d0675a3ec732c23dcc82558bc 100644 (file)
@@ -27,6 +27,48 @@ MODULE_AUTHOR("Atheros Communications");
 MODULE_DESCRIPTION("Shared library for Atheros wireless 802.11n LAN cards.");
 MODULE_LICENSE("Dual BSD/GPL");
 
+int ath9k_cmn_process_rate(struct ath_common *common,
+                          struct ieee80211_hw *hw,
+                          struct ath_rx_status *rx_stats,
+                          struct ieee80211_rx_status *rxs)
+{
+       struct ieee80211_supported_band *sband;
+       enum ieee80211_band band;
+       unsigned int i = 0;
+       struct ath_hw *ah = common->ah;
+
+       band = ah->curchan->chan->band;
+       sband = hw->wiphy->bands[band];
+
+       if (IS_CHAN_QUARTER_RATE(ah->curchan))
+               rxs->flag |= RX_FLAG_5MHZ;
+       else if (IS_CHAN_HALF_RATE(ah->curchan))
+               rxs->flag |= RX_FLAG_10MHZ;
+
+       if (rx_stats->rs_rate & 0x80) {
+               /* HT rate */
+               rxs->flag |= RX_FLAG_HT;
+               rxs->flag |= rx_stats->flag;
+               rxs->rate_idx = rx_stats->rs_rate & 0x7f;
+               return 0;
+       }
+
+       for (i = 0; i < sband->n_bitrates; i++) {
+               if (sband->bitrates[i].hw_value == rx_stats->rs_rate) {
+                       rxs->rate_idx = i;
+                       return 0;
+               }
+               if (sband->bitrates[i].hw_value_short == rx_stats->rs_rate) {
+                       rxs->flag |= RX_FLAG_SHORTPRE;
+                       rxs->rate_idx = i;
+                       return 0;
+               }
+       }
+
+       return -EINVAL;
+}
+EXPORT_SYMBOL(ath9k_cmn_process_rate);
+
 void ath9k_cmn_process_rssi(struct ath_common *common,
                            struct ieee80211_hw *hw,
                            struct ath_rx_status *rx_stats,
index aaf4a9b5ad99fe7990c297ec6befe053c2a2bfd1..729482f4c35d32e53acec956cef2c341c30d881b 100644 (file)
 #define ATH_EP_RND(x, mul)                                             \
        (((x) + ((mul)/2)) / (mul))
 
+int ath9k_cmn_process_rate(struct ath_common *common,
+                          struct ieee80211_hw *hw,
+                          struct ath_rx_status *rx_stats,
+                          struct ieee80211_rx_status *rxs);
 void ath9k_cmn_process_rssi(struct ath_common *common,
                            struct ieee80211_hw *hw,
                            struct ath_rx_status *rx_stats,
index 5229e63ffbbd9615395161421c7fc10d8e219475..ab6a86c2db43c5f0706f3cf04a8ef9f41dae09a6 100644 (file)
@@ -841,56 +841,6 @@ static bool ath9k_rx_accept(struct ath_common *common,
        return true;
 }
 
-static int ath9k_process_rate(struct ath_common *common,
-                             struct ieee80211_hw *hw,
-                             struct ath_rx_status *rx_stats,
-                             struct ieee80211_rx_status *rxs)
-{
-       struct ieee80211_supported_band *sband;
-       enum ieee80211_band band;
-       unsigned int i = 0;
-       struct ath_softc __maybe_unused *sc = common->priv;
-       struct ath_hw *ah = sc->sc_ah;
-
-       band = ah->curchan->chan->band;
-       sband = hw->wiphy->bands[band];
-
-       if (IS_CHAN_QUARTER_RATE(ah->curchan))
-               rxs->flag |= RX_FLAG_5MHZ;
-       else if (IS_CHAN_HALF_RATE(ah->curchan))
-               rxs->flag |= RX_FLAG_10MHZ;
-
-       if (rx_stats->rs_rate & 0x80) {
-               /* HT rate */
-               rxs->flag |= RX_FLAG_HT;
-               rxs->flag |= rx_stats->flag;
-               rxs->rate_idx = rx_stats->rs_rate & 0x7f;
-               return 0;
-       }
-
-       for (i = 0; i < sband->n_bitrates; i++) {
-               if (sband->bitrates[i].hw_value == rx_stats->rs_rate) {
-                       rxs->rate_idx = i;
-                       return 0;
-               }
-               if (sband->bitrates[i].hw_value_short == rx_stats->rs_rate) {
-                       rxs->flag |= RX_FLAG_SHORTPRE;
-                       rxs->rate_idx = i;
-                       return 0;
-               }
-       }
-
-       /*
-        * No valid hardware bitrate found -- we should not get here
-        * because hardware has already validated this frame as OK.
-        */
-       ath_dbg(common, ANY,
-               "unsupported hw bitrate detected 0x%02x using 1 Mbit\n",
-               rx_stats->rs_rate);
-       RX_STAT_INC(rx_rate_err);
-       return -EINVAL;
-}
-
 static void ath9k_process_tsf(struct ath_rx_status *rs,
                              struct ieee80211_rx_status *rxs,
                              u64 tsf)
@@ -1007,7 +957,14 @@ static int ath9k_rx_skb_preprocess(struct ath_softc *sc,
                goto exit;
        }
 
-       if (ath9k_process_rate(common, hw, rx_stats, rx_status)) {
+       if (ath9k_cmn_process_rate(common, hw, rx_stats, rx_status)) {
+               /*
+                * No valid hardware bitrate found -- we should not get here
+                * because hardware has already validated this frame as OK.
+                */
+               ath_dbg(common, ANY, "unsupported hw bitrate detected 0x%02x using 1 Mbit\n",
+                       rx_stats->rs_rate);
+               RX_STAT_INC(rx_rate_err);
                ret =-EINVAL;
                goto exit;
        }