mirror of
https://github.com/torvalds/linux.git
synced 2025-01-01 07:42:07 +00:00
mac80211_hwsim: fix tsf adjustment
Make hwsim TSF offset adjustments cumulative and relative to the fake PHY TSF. Now adding 1000us, then adding -1000us doesn't result in a tsf_offset of -1000. Also the beacon timestamp can now correctly be expressed as (tsf + data->tsf_offset), which will be done in a later patch. Signed-off-by: Thomas Pedersen <thomas@cozybit.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
75ea719cb4
commit
45034bfb8c
@ -361,7 +361,7 @@ struct mac80211_hwsim_data {
|
|||||||
int power_level;
|
int power_level;
|
||||||
|
|
||||||
/* difference between this hw's clock and the real clock, in usecs */
|
/* difference between this hw's clock and the real clock, in usecs */
|
||||||
u64 tsf_offset;
|
s64 tsf_offset;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -427,9 +427,10 @@ static void mac80211_hwsim_set_tsf(struct ieee80211_hw *hw,
|
|||||||
struct ieee80211_vif *vif, u64 tsf)
|
struct ieee80211_vif *vif, u64 tsf)
|
||||||
{
|
{
|
||||||
struct mac80211_hwsim_data *data = hw->priv;
|
struct mac80211_hwsim_data *data = hw->priv;
|
||||||
struct timeval tv = ktime_to_timeval(ktime_get_real());
|
u64 now = mac80211_hwsim_get_tsf(hw, vif);
|
||||||
u64 now = tv.tv_sec * USEC_PER_SEC + tv.tv_usec;
|
s64 delta = tsf - now;
|
||||||
data->tsf_offset = tsf - now;
|
|
||||||
|
data->tsf_offset += delta;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mac80211_hwsim_monitor_rx(struct ieee80211_hw *hw,
|
static void mac80211_hwsim_monitor_rx(struct ieee80211_hw *hw,
|
||||||
|
Loading…
Reference in New Issue
Block a user