forked from Minki/linux
staging: vt6656: implement TSF counter
The TSF counter is presently unused on driver in infrastructure mode. It is needed to implement power saving functions and wireless stats that are passed in interrupt handling. Ensuring counter is synced with access point beacon. Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
113d6dc18e
commit
c15158797d
@ -757,6 +757,26 @@ static void vnt_bss_info_changed(struct ieee80211_hw *hw,
|
|||||||
vnt_mac_reg_bits_off(priv, MAC_REG_TCR, TCR_AUTOBCNTX);
|
vnt_mac_reg_bits_off(priv, MAC_REG_TCR, TCR_AUTOBCNTX);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (changed & (BSS_CHANGED_ASSOC | BSS_CHANGED_BEACON_INFO) &&
|
||||||
|
priv->op_mode != NL80211_IFTYPE_AP) {
|
||||||
|
if (conf->assoc && conf->beacon_rate) {
|
||||||
|
vnt_mac_reg_bits_on(priv, MAC_REG_TFTCTL,
|
||||||
|
TFTCTL_TSFCNTREN);
|
||||||
|
|
||||||
|
vnt_adjust_tsf(priv, conf->beacon_rate->hw_value,
|
||||||
|
conf->sync_tsf, priv->current_tsf);
|
||||||
|
|
||||||
|
vnt_mac_set_beacon_interval(priv, conf->beacon_int);
|
||||||
|
|
||||||
|
vnt_reset_next_tbtt(priv, conf->beacon_int);
|
||||||
|
} else {
|
||||||
|
vnt_clear_current_tsf(priv);
|
||||||
|
|
||||||
|
vnt_mac_reg_bits_off(priv, MAC_REG_TFTCTL,
|
||||||
|
TFTCTL_TSFCNTREN);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static u64 vnt_prepare_multicast(struct ieee80211_hw *hw,
|
static u64 vnt_prepare_multicast(struct ieee80211_hw *hw,
|
||||||
|
Loading…
Reference in New Issue
Block a user