wireless: make drivers include the TSF RX flag where appropriate
authorJohannes Berg <johannes@sipsolutions.net>
Tue, 4 Dec 2007 19:33:40 +0000 (20:33 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 22:58:26 +0000 (14:58 -0800)
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: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wireless/b43/xmit.c
drivers/net/wireless/b43legacy/xmit.c
drivers/net/wireless/p54common.c
drivers/net/wireless/rtl8187_dev.c

index 3307ba1856b17ce36d0740784524a8a3ba7d3562..bcbb32872e85f402e514aea59281fb7d05abff72 100644 (file)
@@ -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.antenna = !!(phystat0 & B43_RX_PHYST0_ANT);
        status.mactime = mactime;
+       status.flag |= RX_FLAG_TSFT;
 
        chanid = (chanstat & B43_RX_CHAN_ID) >> B43_RX_CHAN_ID_SHIFT;
        switch (chanstat & B43_RX_CHAN_PHYTYPE) {
index fa1e65687a63c65f541452dcff9a848e12ba89b1..b71cc949f7d44c0c97793868a770b4faf49ac35c 100644 (file)
@@ -532,6 +532,7 @@ void b43legacy_rx(struct b43legacy_wldev *dev,
                status.rate = b43legacy_plcp_get_bitrate_cck(plcp);
        status.antenna = !!(phystat0 & B43legacy_RX_PHYST0_ANT);
        status.mactime = mactime;
+       status.flag |= RX_FLAG_TSFT;
 
        chanid = (chanstat & B43legacy_RX_CHAN_ID) >>
                  B43legacy_RX_CHAN_ID_SHIFT;
index 1437db0cf4b271372d1a96df5164d74725169919..5f8d898502ae1d7ede966c1943d9a8b5e29ba424 100644 (file)
@@ -314,6 +314,7 @@ static void p54_rx_data(struct ieee80211_hw *dev, struct sk_buff *skb)
        rx_status.phymode = MODE_IEEE80211G;
        rx_status.antenna = hdr->antenna;
        rx_status.mactime = le64_to_cpu(hdr->timestamp);
+       rx_status.flag |= RX_FLAG_TSFT;
 
        skb_pull(skb, sizeof(*hdr));
        skb_trim(skb, le16_to_cpu(hdr->len));
index bd1ab3b3afc0d6fe505ee94bd216a31ea073f225..09e48d3bef36521e94686326269db0b3513cd04d 100644 (file)
@@ -227,6 +227,7 @@ static void rtl8187_rx_cb(struct urb *urb)
        rx_status.channel = dev->conf.channel;
        rx_status.phymode = dev->conf.phymode;
        rx_status.mactime = le64_to_cpu(hdr->mac_time);
+       rx_status.flag |= RX_FLAG_TSFT;
        if (flags & (1 << 13))
                rx_status.flag |= RX_FLAG_FAILED_FCS_CRC;
        ieee80211_rx_irqsafe(dev, skb, &rx_status);