Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143205006
D3590.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D3590.id.diff
View Options
Index: head/sys/dev/usb/wlan/if_run.c
===================================================================
--- head/sys/dev/usb/wlan/if_run.c
+++ head/sys/dev/usb/wlan/if_run.c
@@ -431,6 +431,7 @@
static void run_usb_timeout_cb(void *);
static void run_reset_livelock(struct run_softc *);
static void run_enable_tsf_sync(struct run_softc *);
+static void run_get_tsf(struct run_softc *, uint64_t *);
static void run_enable_mrr(struct run_softc *);
static void run_set_txpreamble(struct run_softc *);
static void run_set_basicrates(struct run_softc *);
@@ -2811,6 +2812,7 @@
tap->wr_antenna = ant;
tap->wr_dbm_antsignal = run_rssi2dbm(sc, rssi, ant);
tap->wr_rate = 2; /* in case it can't be found below */
+ run_get_tsf(sc, &tap->wr_tsf);
phy = le16toh(rxwi->phy);
switch (phy & RT2860_PHY_MODE) {
case RT2860_PHY_CCK:
@@ -3058,6 +3060,7 @@
(struct rt2860_txwi *)(&data->desc + sizeof(struct rt2870_txd));
tap->wt_flags = 0;
tap->wt_rate = rt2860_rates[data->ridx].rate;
+ run_get_tsf(sc, &tap->wt_tsf);
tap->wt_chan_freq = htole16(ic->ic_curchan->ic_freq);
tap->wt_chan_flags = htole16(ic->ic_curchan->ic_flags);
tap->wt_hwqueue = index;
@@ -5047,6 +5050,13 @@
}
static void
+run_get_tsf(struct run_softc *sc, uint64_t *buf)
+{
+ run_read_region_1(sc, RT2860_TSF_TIMER_DW0, (uint8_t *)buf,
+ sizeof(*buf));
+}
+
+static void
run_enable_mrr(struct run_softc *sc)
{
#define CCK(mcs) (mcs)
Index: head/sys/dev/usb/wlan/if_runvar.h
===================================================================
--- head/sys/dev/usb/wlan/if_runvar.h
+++ head/sys/dev/usb/wlan/if_runvar.h
@@ -45,6 +45,7 @@
struct run_rx_radiotap_header {
struct ieee80211_radiotap_header wr_ihdr;
+ uint64_t wr_tsf;
uint8_t wr_flags;
uint8_t wr_rate;
uint16_t wr_chan_freq;
@@ -55,7 +56,8 @@
} __packed __aligned(8);
#define RUN_RX_RADIOTAP_PRESENT \
- (1 << IEEE80211_RADIOTAP_FLAGS | \
+ (1 << IEEE80211_RADIOTAP_TSFT | \
+ 1 << IEEE80211_RADIOTAP_FLAGS | \
1 << IEEE80211_RADIOTAP_RATE | \
1 << IEEE80211_RADIOTAP_CHANNEL | \
1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL | \
@@ -64,6 +66,7 @@
struct run_tx_radiotap_header {
struct ieee80211_radiotap_header wt_ihdr;
+ uint64_t wt_tsf;
uint8_t wt_flags;
uint8_t wt_rate;
uint16_t wt_chan_freq;
@@ -74,7 +77,8 @@
#define IEEE80211_RADIOTAP_HWQUEUE 15
#define RUN_TX_RADIOTAP_PRESENT \
- (1 << IEEE80211_RADIOTAP_FLAGS | \
+ (1 << IEEE80211_RADIOTAP_TSFT | \
+ 1 << IEEE80211_RADIOTAP_FLAGS | \
1 << IEEE80211_RADIOTAP_RATE | \
1 << IEEE80211_RADIOTAP_CHANNEL | \
1 << IEEE80211_RADIOTAP_HWQUEUE)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Jan 28, 10:21 AM (9 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28065204
Default Alt Text
D3590.id.diff (2 KB)
Attached To
Mode
D3590: run(4): add TSF field into TX/RX radiotap headers (untested)
Attached
Detach File
Event Timeline
Log In to Comment