|
|
|
@ -929,42 +929,6 @@ void ath9k_host_rx_init(struct ath9k_htc_priv *priv) |
|
|
|
|
ath9k_hw_startpcureceive(priv->ah, test_bit(OP_SCANNING, &priv->op_flags)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void ath9k_process_rate(struct ieee80211_hw *hw, |
|
|
|
|
struct ieee80211_rx_status *rxs, |
|
|
|
|
u8 rx_rate, u8 rs_flags) |
|
|
|
|
{ |
|
|
|
|
struct ieee80211_supported_band *sband; |
|
|
|
|
enum ieee80211_band band; |
|
|
|
|
unsigned int i = 0; |
|
|
|
|
|
|
|
|
|
if (rx_rate & 0x80) { |
|
|
|
|
/* HT rate */ |
|
|
|
|
rxs->flag |= RX_FLAG_HT; |
|
|
|
|
if (rs_flags & ATH9K_RX_2040) |
|
|
|
|
rxs->flag |= RX_FLAG_40MHZ; |
|
|
|
|
if (rs_flags & ATH9K_RX_GI) |
|
|
|
|
rxs->flag |= RX_FLAG_SHORT_GI; |
|
|
|
|
rxs->rate_idx = rx_rate & 0x7f; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
band = hw->conf.chandef.chan->band; |
|
|
|
|
sband = hw->wiphy->bands[band]; |
|
|
|
|
|
|
|
|
|
for (i = 0; i < sband->n_bitrates; i++) { |
|
|
|
|
if (sband->bitrates[i].hw_value == rx_rate) { |
|
|
|
|
rxs->rate_idx = i; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if (sband->bitrates[i].hw_value_short == rx_rate) { |
|
|
|
|
rxs->rate_idx = i; |
|
|
|
|
rxs->flag |= RX_FLAG_SHORTPRE; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline void convert_htc_flag(struct ath_rx_status *rx_stats, |
|
|
|
|
struct ath_htc_rx_status *rxstatus) |
|
|
|
|
{ |
|
|
|
@ -1099,9 +1063,9 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv, |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ath9k_process_rate(hw, rx_status, rxbuf->rxstatus.rs_rate, |
|
|
|
|
rxbuf->rxstatus.rs_flags); |
|
|
|
|
|
|
|
|
|
if (ath9k_cmn_process_rate(common, hw, &rx_stats, rx_status)) |
|
|
|
|
goto rx_next; |
|
|
|
|
|
|
|
|
|
rx_stats.is_mybeacon = ath_is_mybeacon(common, hdr); |
|
|
|
|
ath9k_cmn_process_rssi(common, hw, &rx_stats, rx_status); |
|
|
|
|