Commit 4febf7b8 authored by Luis R. Rodriguez's avatar Luis R. Rodriguez Committed by John W. Linville

ath9k: remove ath9k_hw_chan2wmode()

The only left users are for timing for ACK timeout, slotime and
CTS timeout. We currently use an array CLOCK_RATE to keep
these values per mode and since as only will use A and G
we can depend on the band to get the appropriate values.

We note that we should be using a different clock rate value
for CCK, we can do this in separate patch, currently this is
being disregarded and should only affect when we want to
change the default ACK/CTS timeout or slot time and stuck
with using using 802.11b.
Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent e56db718
...@@ -23,7 +23,9 @@ ...@@ -23,7 +23,9 @@
#include "phy.h" #include "phy.h"
#include "initvals.h" #include "initvals.h"
static const u8 CLOCK_RATE[] = { 40, 80, 22, 44, 88, 40 }; #define ATH9K_CLOCK_RATE_CCK 22
#define ATH9K_CLOCK_RATE_5GHZ_OFDM 40
#define ATH9K_CLOCK_RATE_2GHZ_OFDM 44
extern struct hal_percal_data iq_cal_multi_sample; extern struct hal_percal_data iq_cal_multi_sample;
extern struct hal_percal_data iq_cal_single_sample; extern struct hal_percal_data iq_cal_single_sample;
...@@ -48,17 +50,18 @@ static void ath9k_hw_spur_mitigate(struct ath_hal *ah, struct ath9k_channel *cha ...@@ -48,17 +50,18 @@ static void ath9k_hw_spur_mitigate(struct ath_hal *ah, struct ath9k_channel *cha
static u32 ath9k_hw_mac_usec(struct ath_hal *ah, u32 clks) static u32 ath9k_hw_mac_usec(struct ath_hal *ah, u32 clks)
{ {
if (ah->ah_curchan != NULL) struct ieee80211_conf *conf = &ah->ah_sc->hw->conf;
return clks / CLOCK_RATE[ath9k_hw_chan2wmode(ah, ah->ah_curchan)]; if (!ah->ah_curchan) /* should really check for CCK instead */
else return clks / ATH9K_CLOCK_RATE_CCK;
return clks / CLOCK_RATE[ATH9K_MODE_11B]; if (conf->channel->band == IEEE80211_BAND_2GHZ)
return clks / ATH9K_CLOCK_RATE_2GHZ_OFDM;
return clks / ATH9K_CLOCK_RATE_5GHZ_OFDM;
} }
static u32 ath9k_hw_mac_to_usec(struct ath_hal *ah, u32 clks) static u32 ath9k_hw_mac_to_usec(struct ath_hal *ah, u32 clks)
{ {
struct ath9k_channel *chan = ah->ah_curchan; struct ieee80211_conf *conf = &ah->ah_sc->hw->conf;
if (conf_is_ht40(conf))
if (chan && IS_CHAN_HT40(chan))
return ath9k_hw_mac_usec(ah, clks) / 2; return ath9k_hw_mac_usec(ah, clks) / 2;
else else
return ath9k_hw_mac_usec(ah, clks); return ath9k_hw_mac_usec(ah, clks);
...@@ -66,34 +69,23 @@ static u32 ath9k_hw_mac_to_usec(struct ath_hal *ah, u32 clks) ...@@ -66,34 +69,23 @@ static u32 ath9k_hw_mac_to_usec(struct ath_hal *ah, u32 clks)
static u32 ath9k_hw_mac_clks(struct ath_hal *ah, u32 usecs) static u32 ath9k_hw_mac_clks(struct ath_hal *ah, u32 usecs)
{ {
if (ah->ah_curchan != NULL) struct ieee80211_conf *conf = &ah->ah_sc->hw->conf;
return usecs * CLOCK_RATE[ath9k_hw_chan2wmode(ah, if (!ah->ah_curchan) /* should really check for CCK instead */
ah->ah_curchan)]; return usecs *ATH9K_CLOCK_RATE_CCK;
else if (conf->channel->band == IEEE80211_BAND_2GHZ)
return usecs * CLOCK_RATE[ATH9K_MODE_11B]; return usecs *ATH9K_CLOCK_RATE_2GHZ_OFDM;
return usecs *ATH9K_CLOCK_RATE_5GHZ_OFDM;
} }
static u32 ath9k_hw_mac_to_clks(struct ath_hal *ah, u32 usecs) static u32 ath9k_hw_mac_to_clks(struct ath_hal *ah, u32 usecs)
{ {
struct ath9k_channel *chan = ah->ah_curchan; struct ieee80211_conf *conf = &ah->ah_sc->hw->conf;
if (conf_is_ht40(conf))
if (chan && IS_CHAN_HT40(chan))
return ath9k_hw_mac_clks(ah, usecs) * 2; return ath9k_hw_mac_clks(ah, usecs) * 2;
else else
return ath9k_hw_mac_clks(ah, usecs); return ath9k_hw_mac_clks(ah, usecs);
} }
enum wireless_mode ath9k_hw_chan2wmode(struct ath_hal *ah,
const struct ath9k_channel *chan)
{
if (IS_CHAN_B(chan))
return ATH9K_MODE_11B;
if (IS_CHAN_G(chan))
return ATH9K_MODE_11G;
return ATH9K_MODE_11A;
}
bool ath9k_hw_wait(struct ath_hal *ah, u32 reg, u32 mask, u32 val) bool ath9k_hw_wait(struct ath_hal *ah, u32 reg, u32 mask, u32 val)
{ {
int i; int i;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment