diff options
author | Andrey Yurovsky <andrey@cozybit.com> | 2008-07-17 16:12:24 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-08-22 16:29:49 -0400 |
commit | 8e5f3d0aaa3ae5305613553f869727b0361cd472 (patch) | |
tree | b13d1e9d08cbbea93066bdc2be7d4f7dbb6eff02 | |
parent | d92a8e81e097968d8f2bac0581a0a43bff14b8f0 (diff) |
ath5k: add Mesh Point support
This enables draft-802.11s Mesh Point operation. For that we need mesh
beaconing. Tested with AR5212/AR5213 PCI card against Zydas and b43 mesh
nodes.
Signed-off-by: Andrey Yurovsky <andrey@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath5k/base.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/ath5k/hw.c | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c index b20a45aa8680..8bc9b92ad6aa 100644 --- a/drivers/net/wireless/ath5k/base.c +++ b/drivers/net/wireless/ath5k/base.c | |||
@@ -1432,7 +1432,8 @@ ath5k_beaconq_config(struct ath5k_softc *sc) | |||
1432 | ret = ath5k_hw_get_tx_queueprops(ah, sc->bhalq, &qi); | 1432 | ret = ath5k_hw_get_tx_queueprops(ah, sc->bhalq, &qi); |
1433 | if (ret) | 1433 | if (ret) |
1434 | return ret; | 1434 | return ret; |
1435 | if (sc->opmode == IEEE80211_IF_TYPE_AP) { | 1435 | if (sc->opmode == IEEE80211_IF_TYPE_AP || |
1436 | sc->opmode == IEEE80211_IF_TYPE_MESH_POINT) { | ||
1436 | /* | 1437 | /* |
1437 | * Always burst out beacon and CAB traffic | 1438 | * Always burst out beacon and CAB traffic |
1438 | * (aifs = cwmin = cwmax = 0) | 1439 | * (aifs = cwmin = cwmax = 0) |
@@ -2932,6 +2933,7 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw, | |||
2932 | if (sc->opmode != IEEE80211_IF_TYPE_STA) | 2933 | if (sc->opmode != IEEE80211_IF_TYPE_STA) |
2933 | rfilt |= AR5K_RX_FILTER_PROBEREQ; | 2934 | rfilt |= AR5K_RX_FILTER_PROBEREQ; |
2934 | if (sc->opmode != IEEE80211_IF_TYPE_AP && | 2935 | if (sc->opmode != IEEE80211_IF_TYPE_AP && |
2936 | sc->opmode != IEEE80211_IF_TYPE_MESH_POINT && | ||
2935 | test_bit(ATH_STAT_PROMISC, sc->status)) | 2937 | test_bit(ATH_STAT_PROMISC, sc->status)) |
2936 | rfilt |= AR5K_RX_FILTER_PROM; | 2938 | rfilt |= AR5K_RX_FILTER_PROM; |
2937 | if (sc->opmode == IEEE80211_IF_TYPE_STA || | 2939 | if (sc->opmode == IEEE80211_IF_TYPE_STA || |
diff --git a/drivers/net/wireless/ath5k/hw.c b/drivers/net/wireless/ath5k/hw.c index ad1a5b422c8c..b335d3323057 100644 --- a/drivers/net/wireless/ath5k/hw.c +++ b/drivers/net/wireless/ath5k/hw.c | |||
@@ -2387,6 +2387,7 @@ int ath5k_hw_set_opmode(struct ath5k_hw *ah) | |||
2387 | break; | 2387 | break; |
2388 | 2388 | ||
2389 | case IEEE80211_IF_TYPE_AP: | 2389 | case IEEE80211_IF_TYPE_AP: |
2390 | case IEEE80211_IF_TYPE_MESH_POINT: | ||
2390 | pcu_reg |= AR5K_STA_ID1_AP | AR5K_STA_ID1_RTS_DEF_ANTENNA | | 2391 | pcu_reg |= AR5K_STA_ID1_AP | AR5K_STA_ID1_RTS_DEF_ANTENNA | |
2391 | (ah->ah_version == AR5K_AR5210 ? | 2392 | (ah->ah_version == AR5K_AR5210 ? |
2392 | AR5K_STA_ID1_NO_PSPOLL : 0); | 2393 | AR5K_STA_ID1_NO_PSPOLL : 0); |