Skip to content

Commit

Permalink
mac80211_hwsim: fix tsf adjustment
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Thomas Pedersen authored and Johannes Berg committed Jan 4, 2013
1 parent 75ea719 commit 45034bf
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions drivers/net/wireless/mac80211_hwsim.c
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ struct mac80211_hwsim_data {
int power_level;

/* difference between this hw's clock and the real clock, in usecs */
u64 tsf_offset;
s64 tsf_offset;
};


Expand Down Expand Up @@ -427,9 +427,10 @@ static void mac80211_hwsim_set_tsf(struct ieee80211_hw *hw,
struct ieee80211_vif *vif, u64 tsf)
{
struct mac80211_hwsim_data *data = hw->priv;
struct timeval tv = ktime_to_timeval(ktime_get_real());
u64 now = tv.tv_sec * USEC_PER_SEC + tv.tv_usec;
data->tsf_offset = tsf - now;
u64 now = mac80211_hwsim_get_tsf(hw, vif);
s64 delta = tsf - now;

data->tsf_offset += delta;
}

static void mac80211_hwsim_monitor_rx(struct ieee80211_hw *hw,
Expand Down

0 comments on commit 45034bf

Please sign in to comment.