mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 14:21:47 +00:00
ath9k: set 5/10 MHz supported channels and fix bitrate
Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de> Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
f819c0e729
commit
67a5533015
@ -146,14 +146,22 @@ static struct ieee80211_rate ath9k_legacy_rates[] = {
|
|||||||
RATE(20, 0x1a, IEEE80211_RATE_SHORT_PREAMBLE),
|
RATE(20, 0x1a, IEEE80211_RATE_SHORT_PREAMBLE),
|
||||||
RATE(55, 0x19, IEEE80211_RATE_SHORT_PREAMBLE),
|
RATE(55, 0x19, IEEE80211_RATE_SHORT_PREAMBLE),
|
||||||
RATE(110, 0x18, IEEE80211_RATE_SHORT_PREAMBLE),
|
RATE(110, 0x18, IEEE80211_RATE_SHORT_PREAMBLE),
|
||||||
RATE(60, 0x0b, 0),
|
RATE(60, 0x0b, (IEEE80211_RATE_SUPPORTS_5MHZ |
|
||||||
RATE(90, 0x0f, 0),
|
IEEE80211_RATE_SUPPORTS_10MHZ)),
|
||||||
RATE(120, 0x0a, 0),
|
RATE(90, 0x0f, (IEEE80211_RATE_SUPPORTS_5MHZ |
|
||||||
RATE(180, 0x0e, 0),
|
IEEE80211_RATE_SUPPORTS_10MHZ)),
|
||||||
RATE(240, 0x09, 0),
|
RATE(120, 0x0a, (IEEE80211_RATE_SUPPORTS_5MHZ |
|
||||||
RATE(360, 0x0d, 0),
|
IEEE80211_RATE_SUPPORTS_10MHZ)),
|
||||||
RATE(480, 0x08, 0),
|
RATE(180, 0x0e, (IEEE80211_RATE_SUPPORTS_5MHZ |
|
||||||
RATE(540, 0x0c, 0),
|
IEEE80211_RATE_SUPPORTS_10MHZ)),
|
||||||
|
RATE(240, 0x09, (IEEE80211_RATE_SUPPORTS_5MHZ |
|
||||||
|
IEEE80211_RATE_SUPPORTS_10MHZ)),
|
||||||
|
RATE(360, 0x0d, (IEEE80211_RATE_SUPPORTS_5MHZ |
|
||||||
|
IEEE80211_RATE_SUPPORTS_10MHZ)),
|
||||||
|
RATE(480, 0x08, (IEEE80211_RATE_SUPPORTS_5MHZ |
|
||||||
|
IEEE80211_RATE_SUPPORTS_10MHZ)),
|
||||||
|
RATE(540, 0x0c, (IEEE80211_RATE_SUPPORTS_5MHZ |
|
||||||
|
IEEE80211_RATE_SUPPORTS_10MHZ)),
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_MAC80211_LEDS
|
#ifdef CONFIG_MAC80211_LEDS
|
||||||
|
@ -1282,9 +1282,14 @@ static void ath_rate_init(void *priv, struct ieee80211_supported_band *sband,
|
|||||||
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
|
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
|
||||||
struct ath_rate_priv *ath_rc_priv = priv_sta;
|
struct ath_rate_priv *ath_rc_priv = priv_sta;
|
||||||
int i, j = 0;
|
int i, j = 0;
|
||||||
|
u32 rate_flags = ieee80211_chandef_rate_flags(&sc->hw->conf.chandef);
|
||||||
|
|
||||||
for (i = 0; i < sband->n_bitrates; i++) {
|
for (i = 0; i < sband->n_bitrates; i++) {
|
||||||
if (sta->supp_rates[sband->band] & BIT(i)) {
|
if (sta->supp_rates[sband->band] & BIT(i)) {
|
||||||
|
if ((rate_flags & sband->bitrates[i].flags)
|
||||||
|
!= rate_flags)
|
||||||
|
continue;
|
||||||
|
|
||||||
ath_rc_priv->neg_rates.rs_rates[j]
|
ath_rc_priv->neg_rates.rs_rates[j]
|
||||||
= (sband->bitrates[i].bitrate * 2) / 10;
|
= (sband->bitrates[i].bitrate * 2) / 10;
|
||||||
j++;
|
j++;
|
||||||
|
Loading…
Reference in New Issue
Block a user