Commit 03bffc13 authored by Johannes Berg's avatar Johannes Berg Committed by David S. Miller

wireless: make drivers include the TSF RX flag where appropriate

These drivers pass full mactime information to the stack, make them
indicate this via the new RX_FLAG_TSFT to get mac80211 to show this
information in monitor mode.
Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 374fdfbc
...@@ -526,6 +526,7 @@ void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr) ...@@ -526,6 +526,7 @@ void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr)
status.rate = b43_plcp_get_bitrate_cck(plcp); status.rate = b43_plcp_get_bitrate_cck(plcp);
status.antenna = !!(phystat0 & B43_RX_PHYST0_ANT); status.antenna = !!(phystat0 & B43_RX_PHYST0_ANT);
status.mactime = mactime; status.mactime = mactime;
status.flag |= RX_FLAG_TSFT;
chanid = (chanstat & B43_RX_CHAN_ID) >> B43_RX_CHAN_ID_SHIFT; chanid = (chanstat & B43_RX_CHAN_ID) >> B43_RX_CHAN_ID_SHIFT;
switch (chanstat & B43_RX_CHAN_PHYTYPE) { switch (chanstat & B43_RX_CHAN_PHYTYPE) {
......
...@@ -532,6 +532,7 @@ void b43legacy_rx(struct b43legacy_wldev *dev, ...@@ -532,6 +532,7 @@ void b43legacy_rx(struct b43legacy_wldev *dev,
status.rate = b43legacy_plcp_get_bitrate_cck(plcp); status.rate = b43legacy_plcp_get_bitrate_cck(plcp);
status.antenna = !!(phystat0 & B43legacy_RX_PHYST0_ANT); status.antenna = !!(phystat0 & B43legacy_RX_PHYST0_ANT);
status.mactime = mactime; status.mactime = mactime;
status.flag |= RX_FLAG_TSFT;
chanid = (chanstat & B43legacy_RX_CHAN_ID) >> chanid = (chanstat & B43legacy_RX_CHAN_ID) >>
B43legacy_RX_CHAN_ID_SHIFT; B43legacy_RX_CHAN_ID_SHIFT;
......
...@@ -314,6 +314,7 @@ static void p54_rx_data(struct ieee80211_hw *dev, struct sk_buff *skb) ...@@ -314,6 +314,7 @@ static void p54_rx_data(struct ieee80211_hw *dev, struct sk_buff *skb)
rx_status.phymode = MODE_IEEE80211G; rx_status.phymode = MODE_IEEE80211G;
rx_status.antenna = hdr->antenna; rx_status.antenna = hdr->antenna;
rx_status.mactime = le64_to_cpu(hdr->timestamp); rx_status.mactime = le64_to_cpu(hdr->timestamp);
rx_status.flag |= RX_FLAG_TSFT;
skb_pull(skb, sizeof(*hdr)); skb_pull(skb, sizeof(*hdr));
skb_trim(skb, le16_to_cpu(hdr->len)); skb_trim(skb, le16_to_cpu(hdr->len));
......
...@@ -227,6 +227,7 @@ static void rtl8187_rx_cb(struct urb *urb) ...@@ -227,6 +227,7 @@ static void rtl8187_rx_cb(struct urb *urb)
rx_status.channel = dev->conf.channel; rx_status.channel = dev->conf.channel;
rx_status.phymode = dev->conf.phymode; rx_status.phymode = dev->conf.phymode;
rx_status.mactime = le64_to_cpu(hdr->mac_time); rx_status.mactime = le64_to_cpu(hdr->mac_time);
rx_status.flag |= RX_FLAG_TSFT;
if (flags & (1 << 13)) if (flags & (1 << 13))
rx_status.flag |= RX_FLAG_FAILED_FCS_CRC; rx_status.flag |= RX_FLAG_FAILED_FCS_CRC;
ieee80211_rx_irqsafe(dev, skb, &rx_status); ieee80211_rx_irqsafe(dev, skb, &rx_status);
......
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