ath9k: move ath9k_beacon_config_ap common
Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
12f53c308e
commit
fa7b52fadb
|
@ -483,26 +483,9 @@ static void ath9k_beacon_config_ap(struct ath_softc *sc,
|
|||
struct ath_beacon_config *conf)
|
||||
{
|
||||
struct ath_hw *ah = sc->sc_ah;
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
u32 nexttbtt, intval;
|
||||
|
||||
/* NB: the beacon interval is kept internally in TU's */
|
||||
intval = TU_TO_USEC(conf->beacon_interval);
|
||||
intval /= ATH_BCBUF;
|
||||
nexttbtt = ath9k_get_next_tbtt(sc, ath9k_hw_gettsf64(ah),
|
||||
conf->beacon_interval);
|
||||
|
||||
if (conf->enable_beacon)
|
||||
ah->imask |= ATH9K_INT_SWBA;
|
||||
else
|
||||
ah->imask &= ~ATH9K_INT_SWBA;
|
||||
|
||||
ath_dbg(common, BEACON,
|
||||
"AP (%s) nexttbtt: %u intval: %u conf_intval: %u\n",
|
||||
(conf->enable_beacon) ? "Enable" : "Disable",
|
||||
nexttbtt, intval, conf->beacon_interval);
|
||||
|
||||
ath9k_beacon_init(sc, nexttbtt, intval, false);
|
||||
ath9k_cmn_beacon_config_ap(ah, conf, ATH_BCBUF);
|
||||
ath9k_beacon_init(sc, conf->nexttbtt, conf->intval, false);
|
||||
}
|
||||
|
||||
static void ath9k_beacon_config_sta(struct ath_hw *ah,
|
||||
|
|
|
@ -149,3 +149,32 @@ void ath9k_cmn_beacon_config_adhoc(struct ath_hw *ah,
|
|||
conf->nexttbtt, conf->intval, conf->beacon_interval);
|
||||
}
|
||||
EXPORT_SYMBOL(ath9k_cmn_beacon_config_adhoc);
|
||||
|
||||
/*
|
||||
* For multi-bss ap support beacons are either staggered evenly over N slots or
|
||||
* burst together. For the former arrange for the SWBA to be delivered for each
|
||||
* slot. Slots that are not occupied will generate nothing.
|
||||
*/
|
||||
void ath9k_cmn_beacon_config_ap(struct ath_hw *ah,
|
||||
struct ath_beacon_config *conf,
|
||||
unsigned int bc_buf)
|
||||
{
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
|
||||
/* NB: the beacon interval is kept internally in TU's */
|
||||
conf->intval = TU_TO_USEC(conf->beacon_interval);
|
||||
conf->intval /= bc_buf;
|
||||
conf->nexttbtt = ath9k_get_next_tbtt(ah, ath9k_hw_gettsf64(ah),
|
||||
conf->beacon_interval);
|
||||
|
||||
if (conf->enable_beacon)
|
||||
ah->imask |= ATH9K_INT_SWBA;
|
||||
else
|
||||
ah->imask &= ~ATH9K_INT_SWBA;
|
||||
|
||||
ath_dbg(common, BEACON,
|
||||
"AP (%s) nexttbtt: %u intval: %u conf_intval: %u\n",
|
||||
(conf->enable_beacon) ? "Enable" : "Disable",
|
||||
conf->nexttbtt, conf->intval, conf->beacon_interval);
|
||||
}
|
||||
EXPORT_SYMBOL(ath9k_cmn_beacon_config_ap);
|
||||
|
|
|
@ -21,3 +21,6 @@ int ath9k_cmn_beacon_config_sta(struct ath_hw *ah,
|
|||
struct ath9k_beacon_state *bs);
|
||||
void ath9k_cmn_beacon_config_adhoc(struct ath_hw *ah,
|
||||
struct ath_beacon_config *conf);
|
||||
void ath9k_cmn_beacon_config_ap(struct ath_hw *ah,
|
||||
struct ath_beacon_config *conf,
|
||||
unsigned int bc_buf);
|
||||
|
|
Loading…
Reference in New Issue