diff options
Diffstat (limited to 'drivers/net/wireless/ipw2200.c')
-rw-r--r-- | drivers/net/wireless/ipw2200.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c index e82e56bb85e1..22cb3fb7502e 100644 --- a/drivers/net/wireless/ipw2200.c +++ b/drivers/net/wireless/ipw2200.c | |||
@@ -70,7 +70,7 @@ | |||
70 | #define VQ | 70 | #define VQ |
71 | #endif | 71 | #endif |
72 | 72 | ||
73 | #define IPW2200_VERSION "1.1.4" VK VD VM VP VR VQ | 73 | #define IPW2200_VERSION "1.2.0" VK VD VM VP VR VQ |
74 | #define DRV_DESCRIPTION "Intel(R) PRO/Wireless 2200/2915 Network Driver" | 74 | #define DRV_DESCRIPTION "Intel(R) PRO/Wireless 2200/2915 Network Driver" |
75 | #define DRV_COPYRIGHT "Copyright(c) 2003-2006 Intel Corporation" | 75 | #define DRV_COPYRIGHT "Copyright(c) 2003-2006 Intel Corporation" |
76 | #define DRV_VERSION IPW2200_VERSION | 76 | #define DRV_VERSION IPW2200_VERSION |
@@ -7677,7 +7677,8 @@ static void ipw_handle_data_packet_monitor(struct ipw_priv *priv, | |||
7677 | 7677 | ||
7678 | /* Big bitfield of all the fields we provide in radiotap */ | 7678 | /* Big bitfield of all the fields we provide in radiotap */ |
7679 | ipw_rt->rt_hdr.it_present = | 7679 | ipw_rt->rt_hdr.it_present = |
7680 | ((1 << IEEE80211_RADIOTAP_FLAGS) | | 7680 | ((1 << IEEE80211_RADIOTAP_TSFT) | |
7681 | (1 << IEEE80211_RADIOTAP_FLAGS) | | ||
7681 | (1 << IEEE80211_RADIOTAP_RATE) | | 7682 | (1 << IEEE80211_RADIOTAP_RATE) | |
7682 | (1 << IEEE80211_RADIOTAP_CHANNEL) | | 7683 | (1 << IEEE80211_RADIOTAP_CHANNEL) | |
7683 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | | 7684 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | |
@@ -7686,10 +7687,14 @@ static void ipw_handle_data_packet_monitor(struct ipw_priv *priv, | |||
7686 | 7687 | ||
7687 | /* Zero the flags, we'll add to them as we go */ | 7688 | /* Zero the flags, we'll add to them as we go */ |
7688 | ipw_rt->rt_flags = 0; | 7689 | ipw_rt->rt_flags = 0; |
7689 | ipw_rt->rt_tsf = 0ULL; | 7690 | ipw_rt->rt_tsf = (u64)(frame->parent_tsf[3] << 24 | |
7691 | frame->parent_tsf[2] << 16 | | ||
7692 | frame->parent_tsf[1] << 8 | | ||
7693 | frame->parent_tsf[0]); | ||
7690 | 7694 | ||
7691 | /* Convert signal to DBM */ | 7695 | /* Convert signal to DBM */ |
7692 | ipw_rt->rt_dbmsignal = antsignal; | 7696 | ipw_rt->rt_dbmsignal = antsignal; |
7697 | ipw_rt->rt_dbmnoise = frame->noise; | ||
7693 | 7698 | ||
7694 | /* Convert the channel data and set the flags */ | 7699 | /* Convert the channel data and set the flags */ |
7695 | ipw_rt->rt_channel = cpu_to_le16(ieee80211chan2mhz(received_channel)); | 7700 | ipw_rt->rt_channel = cpu_to_le16(ieee80211chan2mhz(received_channel)); |
@@ -7889,7 +7894,8 @@ static void ipw_handle_promiscuous_rx(struct ipw_priv *priv, | |||
7889 | 7894 | ||
7890 | /* Big bitfield of all the fields we provide in radiotap */ | 7895 | /* Big bitfield of all the fields we provide in radiotap */ |
7891 | ipw_rt->rt_hdr.it_present = | 7896 | ipw_rt->rt_hdr.it_present = |
7892 | ((1 << IEEE80211_RADIOTAP_FLAGS) | | 7897 | ((1 << IEEE80211_RADIOTAP_TSFT) | |
7898 | (1 << IEEE80211_RADIOTAP_FLAGS) | | ||
7893 | (1 << IEEE80211_RADIOTAP_RATE) | | 7899 | (1 << IEEE80211_RADIOTAP_RATE) | |
7894 | (1 << IEEE80211_RADIOTAP_CHANNEL) | | 7900 | (1 << IEEE80211_RADIOTAP_CHANNEL) | |
7895 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | | 7901 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | |
@@ -7898,7 +7904,10 @@ static void ipw_handle_promiscuous_rx(struct ipw_priv *priv, | |||
7898 | 7904 | ||
7899 | /* Zero the flags, we'll add to them as we go */ | 7905 | /* Zero the flags, we'll add to them as we go */ |
7900 | ipw_rt->rt_flags = 0; | 7906 | ipw_rt->rt_flags = 0; |
7901 | ipw_rt->rt_tsf = 0ULL; | 7907 | ipw_rt->rt_tsf = (u64)(frame->parent_tsf[3] << 24 | |
7908 | frame->parent_tsf[2] << 16 | | ||
7909 | frame->parent_tsf[1] << 8 | | ||
7910 | frame->parent_tsf[0]); | ||
7902 | 7911 | ||
7903 | /* Convert to DBM */ | 7912 | /* Convert to DBM */ |
7904 | ipw_rt->rt_dbmsignal = signal; | 7913 | ipw_rt->rt_dbmsignal = signal; |
@@ -8297,7 +8306,7 @@ static void ipw_rx(struct ipw_priv *priv) | |||
8297 | ("Notification: subtype=%02X flags=%02X size=%d\n", | 8306 | ("Notification: subtype=%02X flags=%02X size=%d\n", |
8298 | pkt->u.notification.subtype, | 8307 | pkt->u.notification.subtype, |
8299 | pkt->u.notification.flags, | 8308 | pkt->u.notification.flags, |
8300 | pkt->u.notification.size); | 8309 | le16_to_cpu(pkt->u.notification.size)); |
8301 | ipw_rx_notification(priv, &pkt->u.notification); | 8310 | ipw_rx_notification(priv, &pkt->u.notification); |
8302 | break; | 8311 | break; |
8303 | } | 8312 | } |
@@ -11145,14 +11154,13 @@ static int ipw_up(struct ipw_priv *priv) | |||
11145 | return -EIO; | 11154 | return -EIO; |
11146 | 11155 | ||
11147 | if (cmdlog && !priv->cmdlog) { | 11156 | if (cmdlog && !priv->cmdlog) { |
11148 | priv->cmdlog = kmalloc(sizeof(*priv->cmdlog) * cmdlog, | 11157 | priv->cmdlog = kcalloc(cmdlog, sizeof(*priv->cmdlog), |
11149 | GFP_KERNEL); | 11158 | GFP_KERNEL); |
11150 | if (priv->cmdlog == NULL) { | 11159 | if (priv->cmdlog == NULL) { |
11151 | IPW_ERROR("Error allocating %d command log entries.\n", | 11160 | IPW_ERROR("Error allocating %d command log entries.\n", |
11152 | cmdlog); | 11161 | cmdlog); |
11153 | return -ENOMEM; | 11162 | return -ENOMEM; |
11154 | } else { | 11163 | } else { |
11155 | memset(priv->cmdlog, 0, sizeof(*priv->cmdlog) * cmdlog); | ||
11156 | priv->cmdlog_len = cmdlog; | 11164 | priv->cmdlog_len = cmdlog; |
11157 | } | 11165 | } |
11158 | } | 11166 | } |