diff options
author | Pedersen, Thomas <twp@qca.qualcomm.com> | 2016-09-28 16:56:28 -0700 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2016-09-30 13:45:44 +0200 |
commit | 354d381baf1126c45d03b5c0d87d22caf938b86b (patch) | |
tree | ef838588ad6a1f1c4b51e347794e5c5085a67cf1 /net/mac80211/debugfs_netdev.c | |
parent | 3ff23cd5654b9c8f4d567caa73439b4c39fbeaae (diff) | |
download | linux-354d381baf1126c45d03b5c0d87d22caf938b86b.tar.gz linux-354d381baf1126c45d03b5c0d87d22caf938b86b.tar.bz2 linux-354d381baf1126c45d03b5c0d87d22caf938b86b.zip |
mac80211: add offset_tsf driver op and use it for mesh
This allows the mesh sync (and debugfs) code to make incremental
TSF adjustments, avoiding any uncertainty introduced by delay in
programming absolute TSF.
Signed-off-by: Thomas Pedersen <twp@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/debugfs_netdev.c')
-rw-r--r-- | net/mac80211/debugfs_netdev.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c index 5d35c0f37bb7..bcec1240f41d 100644 --- a/net/mac80211/debugfs_netdev.c +++ b/net/mac80211/debugfs_netdev.c @@ -556,9 +556,15 @@ static ssize_t ieee80211_if_parse_tsf( ret = kstrtoull(buf, 10, &tsf); if (ret < 0) return ret; - if (tsf_is_delta) - tsf = drv_get_tsf(local, sdata) + tsf_is_delta * tsf; - if (local->ops->set_tsf) { + if (tsf_is_delta && local->ops->offset_tsf) { + drv_offset_tsf(local, sdata, tsf_is_delta * tsf); + wiphy_info(local->hw.wiphy, + "debugfs offset TSF by %018lld\n", + tsf_is_delta * tsf); + } else if (local->ops->set_tsf) { + if (tsf_is_delta) + tsf = drv_get_tsf(local, sdata) + + tsf_is_delta * tsf; drv_set_tsf(local, sdata, tsf); wiphy_info(local->hw.wiphy, "debugfs set TSF to %#018llx\n", tsf); |