diff options
Diffstat (limited to 'drivers/net/wireless/ipw2200.c')
-rw-r--r-- | drivers/net/wireless/ipw2200.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c index b2e144b7f4a0..26998b5157ea 100644 --- a/drivers/net/wireless/ipw2200.c +++ b/drivers/net/wireless/ipw2200.c | |||
@@ -7656,7 +7656,8 @@ static void ipw_handle_data_packet_monitor(struct ipw_priv *priv, | |||
7656 | 7656 | ||
7657 | /* Big bitfield of all the fields we provide in radiotap */ | 7657 | /* Big bitfield of all the fields we provide in radiotap */ |
7658 | ipw_rt->rt_hdr.it_present = | 7658 | ipw_rt->rt_hdr.it_present = |
7659 | ((1 << IEEE80211_RADIOTAP_FLAGS) | | 7659 | ((1 << IEEE80211_RADIOTAP_TSFT) | |
7660 | (1 << IEEE80211_RADIOTAP_FLAGS) | | ||
7660 | (1 << IEEE80211_RADIOTAP_RATE) | | 7661 | (1 << IEEE80211_RADIOTAP_RATE) | |
7661 | (1 << IEEE80211_RADIOTAP_CHANNEL) | | 7662 | (1 << IEEE80211_RADIOTAP_CHANNEL) | |
7662 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | | 7663 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | |
@@ -7665,10 +7666,14 @@ static void ipw_handle_data_packet_monitor(struct ipw_priv *priv, | |||
7665 | 7666 | ||
7666 | /* Zero the flags, we'll add to them as we go */ | 7667 | /* Zero the flags, we'll add to them as we go */ |
7667 | ipw_rt->rt_flags = 0; | 7668 | ipw_rt->rt_flags = 0; |
7668 | ipw_rt->rt_tsf = 0ULL; | 7669 | ipw_rt->rt_tsf = (u64)(frame->parent_tsf[3] << 24 | |
7670 | frame->parent_tsf[2] << 16 | | ||
7671 | frame->parent_tsf[1] << 8 | | ||
7672 | frame->parent_tsf[0]); | ||
7669 | 7673 | ||
7670 | /* Convert signal to DBM */ | 7674 | /* Convert signal to DBM */ |
7671 | ipw_rt->rt_dbmsignal = antsignal; | 7675 | ipw_rt->rt_dbmsignal = antsignal; |
7676 | ipw_rt->rt_dbmnoise = frame->noise; | ||
7672 | 7677 | ||
7673 | /* Convert the channel data and set the flags */ | 7678 | /* Convert the channel data and set the flags */ |
7674 | ipw_rt->rt_channel = cpu_to_le16(ieee80211chan2mhz(received_channel)); | 7679 | ipw_rt->rt_channel = cpu_to_le16(ieee80211chan2mhz(received_channel)); |
@@ -7868,7 +7873,8 @@ static void ipw_handle_promiscuous_rx(struct ipw_priv *priv, | |||
7868 | 7873 | ||
7869 | /* Big bitfield of all the fields we provide in radiotap */ | 7874 | /* Big bitfield of all the fields we provide in radiotap */ |
7870 | ipw_rt->rt_hdr.it_present = | 7875 | ipw_rt->rt_hdr.it_present = |
7871 | ((1 << IEEE80211_RADIOTAP_FLAGS) | | 7876 | ((1 << IEEE80211_RADIOTAP_TSFT) | |
7877 | (1 << IEEE80211_RADIOTAP_FLAGS) | | ||
7872 | (1 << IEEE80211_RADIOTAP_RATE) | | 7878 | (1 << IEEE80211_RADIOTAP_RATE) | |
7873 | (1 << IEEE80211_RADIOTAP_CHANNEL) | | 7879 | (1 << IEEE80211_RADIOTAP_CHANNEL) | |
7874 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | | 7880 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | |
@@ -7877,7 +7883,10 @@ static void ipw_handle_promiscuous_rx(struct ipw_priv *priv, | |||
7877 | 7883 | ||
7878 | /* Zero the flags, we'll add to them as we go */ | 7884 | /* Zero the flags, we'll add to them as we go */ |
7879 | ipw_rt->rt_flags = 0; | 7885 | ipw_rt->rt_flags = 0; |
7880 | ipw_rt->rt_tsf = 0ULL; | 7886 | ipw_rt->rt_tsf = (u64)(frame->parent_tsf[3] << 24 | |
7887 | frame->parent_tsf[2] << 16 | | ||
7888 | frame->parent_tsf[1] << 8 | | ||
7889 | frame->parent_tsf[0]); | ||
7881 | 7890 | ||
7882 | /* Convert to DBM */ | 7891 | /* Convert to DBM */ |
7883 | ipw_rt->rt_dbmsignal = signal; | 7892 | ipw_rt->rt_dbmsignal = signal; |