Commit 7fde5122 authored by Benjamin Berg's avatar Benjamin Berg Committed by Kalle Valo

ath9k: Expose tsf_adjustment in mac80211 tsf getters and setters.

The ath9k driver modifies the TSF for VIFs for the purpose of sending
beacons in a staggered fashion. This patch exposes this VIF specific
adjustment of the TSF value to mac80211. Without the change the TSF
routines handle the hardware TSF value instead of the actual TSF value as
seen on the air.
Signed-off-by: default avatarBenjamin Berg <benjamin.berg@open-mesh.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent bec9a94b
...@@ -1835,6 +1835,7 @@ static u64 ath9k_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ...@@ -1835,6 +1835,7 @@ static u64 ath9k_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
tsf = sc->cur_chan->tsf_val + tsf = sc->cur_chan->tsf_val +
ath9k_hw_get_tsf_offset(&sc->cur_chan->tsf_ts, NULL); ath9k_hw_get_tsf_offset(&sc->cur_chan->tsf_ts, NULL);
} }
tsf += le64_to_cpu(avp->tsf_adjust);
ath9k_ps_restore(sc); ath9k_ps_restore(sc);
mutex_unlock(&sc->mutex); mutex_unlock(&sc->mutex);
...@@ -1850,6 +1851,7 @@ static void ath9k_set_tsf(struct ieee80211_hw *hw, ...@@ -1850,6 +1851,7 @@ static void ath9k_set_tsf(struct ieee80211_hw *hw,
mutex_lock(&sc->mutex); mutex_lock(&sc->mutex);
ath9k_ps_wakeup(sc); ath9k_ps_wakeup(sc);
tsf -= le64_to_cpu(avp->tsf_adjust);
getrawmonotonic(&avp->chanctx->tsf_ts); getrawmonotonic(&avp->chanctx->tsf_ts);
if (sc->cur_chan == avp->chanctx) if (sc->cur_chan == avp->chanctx)
ath9k_hw_settsf64(sc->sc_ah, tsf); ath9k_hw_settsf64(sc->sc_ah, tsf);
......
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