aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-03-18 12:58:27 -0400
committerReinette Chatre <reinette.chatre@intel.com>2010-03-25 14:20:44 -0400
commited1b6e99b5e64d2b9cdf764754a072c7fdc1c3c4 (patch)
treee635e413b07191690584ecd54d415495c74be08d /drivers/net/wireless/iwlwifi
parent3d2b162e7e0a3e5093bccdf455f7c83f65c82db8 (diff)
iwlwifi: remove noise reporting
We go to great lengths to calculate this value that is never used by mac80211. Additionally, it is now deprecated by mac80211 and is causing driver compilation to give warnings. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c36
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-lib.c20
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-rx.c7
5 files changed, 11 insertions, 56 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index 21ae61dd3d51..6b7201551ca7 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -622,7 +622,6 @@ static void iwl3945_rx_reply_rx(struct iwl_priv *priv,
622 struct iwl3945_rx_frame_stats *rx_stats = IWL_RX_STATS(pkt); 622 struct iwl3945_rx_frame_stats *rx_stats = IWL_RX_STATS(pkt);
623 struct iwl3945_rx_frame_hdr *rx_hdr = IWL_RX_HDR(pkt); 623 struct iwl3945_rx_frame_hdr *rx_hdr = IWL_RX_HDR(pkt);
624 struct iwl3945_rx_frame_end *rx_end = IWL_RX_END(pkt); 624 struct iwl3945_rx_frame_end *rx_end = IWL_RX_END(pkt);
625 int snr;
626 u16 rx_stats_sig_avg = le16_to_cpu(rx_stats->sig_avg); 625 u16 rx_stats_sig_avg = le16_to_cpu(rx_stats->sig_avg);
627 u16 rx_stats_noise_diff = le16_to_cpu(rx_stats->noise_diff); 626 u16 rx_stats_noise_diff = le16_to_cpu(rx_stats->noise_diff);
628 u8 network_packet; 627 u8 network_packet;
@@ -662,43 +661,19 @@ static void iwl3945_rx_reply_rx(struct iwl_priv *priv,
662 /* Convert 3945's rssi indicator to dBm */ 661 /* Convert 3945's rssi indicator to dBm */
663 rx_status.signal = rx_stats->rssi - IWL39_RSSI_OFFSET; 662 rx_status.signal = rx_stats->rssi - IWL39_RSSI_OFFSET;
664 663
665 /* Set default noise value to -127 */ 664 IWL_DEBUG_STATS(priv, "Rssi %d sig_avg %d noise_diff %d\n",
666 if (priv->last_rx_noise == 0) 665 rx_status.signal, rx_stats_sig_avg,
667 priv->last_rx_noise = IWL_NOISE_MEAS_NOT_AVAILABLE; 666 rx_stats_noise_diff);
668
669 /* 3945 provides noise info for OFDM frames only.
670 * sig_avg and noise_diff are measured by the 3945's digital signal
671 * processor (DSP), and indicate linear levels of signal level and
672 * distortion/noise within the packet preamble after
673 * automatic gain control (AGC). sig_avg should stay fairly
674 * constant if the radio's AGC is working well.
675 * Since these values are linear (not dB or dBm), linear
676 * signal-to-noise ratio (SNR) is (sig_avg / noise_diff).
677 * Convert linear SNR to dB SNR, then subtract that from rssi dBm
678 * to obtain noise level in dBm.
679 * Calculate rx_status.signal (quality indicator in %) based on SNR. */
680 if (rx_stats_noise_diff) {
681 snr = rx_stats_sig_avg / rx_stats_noise_diff;
682 rx_status.noise = rx_status.signal -
683 iwl3945_calc_db_from_ratio(snr);
684 } else {
685 rx_status.noise = priv->last_rx_noise;
686 }
687
688
689 IWL_DEBUG_STATS(priv, "Rssi %d noise %d sig_avg %d noise_diff %d\n",
690 rx_status.signal, rx_status.noise,
691 rx_stats_sig_avg, rx_stats_noise_diff);
692 667
693 header = (struct ieee80211_hdr *)IWL_RX_DATA(pkt); 668 header = (struct ieee80211_hdr *)IWL_RX_DATA(pkt);
694 669
695 network_packet = iwl3945_is_network_packet(priv, header); 670 network_packet = iwl3945_is_network_packet(priv, header);
696 671
697 IWL_DEBUG_STATS_LIMIT(priv, "[%c] %d RSSI:%d Signal:%u, Noise:%u, Rate:%u\n", 672 IWL_DEBUG_STATS_LIMIT(priv, "[%c] %d RSSI:%d Signal:%u, Rate:%u\n",
698 network_packet ? '*' : ' ', 673 network_packet ? '*' : ' ',
699 le16_to_cpu(rx_hdr->channel), 674 le16_to_cpu(rx_hdr->channel),
700 rx_status.signal, rx_status.signal, 675 rx_status.signal, rx_status.signal,
701 rx_status.noise, rx_status.rate_idx); 676 rx_status.rate_idx);
702 677
703 /* Set "1" to report good data frames in groups of 100 */ 678 /* Set "1" to report good data frames in groups of 100 */
704 iwl3945_dbg_report_frame(priv, pkt, header, 1); 679 iwl3945_dbg_report_frame(priv, pkt, header, 1);
@@ -709,7 +684,6 @@ static void iwl3945_rx_reply_rx(struct iwl_priv *priv,
709 le32_to_cpu(rx_end->beacon_timestamp); 684 le32_to_cpu(rx_end->beacon_timestamp);
710 priv->_3945.last_tsf = le64_to_cpu(rx_end->timestamp); 685 priv->_3945.last_tsf = le64_to_cpu(rx_end->timestamp);
711 priv->_3945.last_rx_rssi = rx_status.signal; 686 priv->_3945.last_rx_rssi = rx_status.signal;
712 priv->last_rx_noise = rx_status.noise;
713 } 687 }
714 688
715 iwl3945_pass_packet_to_mac80211(priv, rxb, &rx_status); 689 iwl3945_pass_packet_to_mac80211(priv, rxb, &rx_status);
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
index 226862d3d5ac..e8e3118ec0ad 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
@@ -1071,30 +1071,14 @@ void iwlagn_rx_reply_rx(struct iwl_priv *priv,
1071 /* Find max signal strength (dBm) among 3 antenna/receiver chains */ 1071 /* Find max signal strength (dBm) among 3 antenna/receiver chains */
1072 rx_status.signal = iwlagn_calc_rssi(priv, phy_res); 1072 rx_status.signal = iwlagn_calc_rssi(priv, phy_res);
1073 1073
1074 /* Meaningful noise values are available only from beacon statistics,
1075 * which are gathered only when associated, and indicate noise
1076 * only for the associated network channel ...
1077 * Ignore these noise values while scanning (other channels) */
1078 if (iwl_is_associated(priv) &&
1079 !test_bit(STATUS_SCANNING, &priv->status)) {
1080 rx_status.noise = priv->last_rx_noise;
1081 } else {
1082 rx_status.noise = IWL_NOISE_MEAS_NOT_AVAILABLE;
1083 }
1084
1085 /* Reset beacon noise level if not associated. */
1086 if (!iwl_is_associated(priv))
1087 priv->last_rx_noise = IWL_NOISE_MEAS_NOT_AVAILABLE;
1088
1089#ifdef CONFIG_IWLWIFI_DEBUG 1074#ifdef CONFIG_IWLWIFI_DEBUG
1090 /* Set "1" to report good data frames in groups of 100 */ 1075 /* Set "1" to report good data frames in groups of 100 */
1091 if (unlikely(iwl_get_debug_level(priv) & IWL_DL_RX)) 1076 if (unlikely(iwl_get_debug_level(priv) & IWL_DL_RX))
1092 iwlagn_dbg_report_frame(priv, phy_res, len, header, 1); 1077 iwlagn_dbg_report_frame(priv, phy_res, len, header, 1);
1093#endif 1078#endif
1094 iwl_dbg_log_rx_data_frame(priv, len, header); 1079 iwl_dbg_log_rx_data_frame(priv, len, header);
1095 IWL_DEBUG_STATS_LIMIT(priv, "Rssi %d, noise %d, TSF %llu\n", 1080 IWL_DEBUG_STATS_LIMIT(priv, "Rssi %d, TSF %llu\n",
1096 rx_status.signal, rx_status.noise, 1081 rx_status.signal, (unsigned long long)rx_status.mactime);
1097 (unsigned long long)rx_status.mactime);
1098 1082
1099 /* 1083 /*
1100 * "antenna number" 1084 * "antenna number"
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index 5155b1a027eb..bcae6a088106 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -2940,8 +2940,6 @@ static ssize_t rs_sta_dbgfs_rate_scale_data_read(struct file *file,
2940 desc += sprintf(buff+desc, 2940 desc += sprintf(buff+desc,
2941 "Bit Rate= %d Mb/s\n", 2941 "Bit Rate= %d Mb/s\n",
2942 iwl_rates[lq_sta->last_txrate_idx].ieee >> 1); 2942 iwl_rates[lq_sta->last_txrate_idx].ieee >> 1);
2943 desc += sprintf(buff+desc, "Noise Level= %d dBm\n",
2944 priv->last_rx_noise);
2945 2943
2946 ret = simple_read_from_buffer(user_buf, count, ppos, buff, desc); 2944 ret = simple_read_from_buffer(user_buf, count, ppos, buff, desc);
2947 return ret; 2945 return ret;
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 07d865fd57ed..bff182ffeac9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -1167,8 +1167,6 @@ struct iwl_priv {
1167 1167
1168 unsigned long status; 1168 unsigned long status;
1169 1169
1170 int last_rx_noise; /* From beacon statistics */
1171
1172 /* counts mgmt, ctl, and data packets */ 1170 /* counts mgmt, ctl, and data packets */
1173 struct traffic_stats tx_stats; 1171 struct traffic_stats tx_stats;
1174 struct traffic_stats rx_stats; 1172 struct traffic_stats rx_stats;
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
index 3a4313841fe7..1dff14a67b2c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
@@ -259,6 +259,7 @@ static void iwl_rx_calc_noise(struct iwl_priv *priv)
259 le32_to_cpu(rx_info->beacon_silence_rssi_b) & IN_BAND_FILTER; 259 le32_to_cpu(rx_info->beacon_silence_rssi_b) & IN_BAND_FILTER;
260 int bcn_silence_c = 260 int bcn_silence_c =
261 le32_to_cpu(rx_info->beacon_silence_rssi_c) & IN_BAND_FILTER; 261 le32_to_cpu(rx_info->beacon_silence_rssi_c) & IN_BAND_FILTER;
262 int last_rx_noise;
262 263
263 if (bcn_silence_a) { 264 if (bcn_silence_a) {
264 total_silence += bcn_silence_a; 265 total_silence += bcn_silence_a;
@@ -275,13 +276,13 @@ static void iwl_rx_calc_noise(struct iwl_priv *priv)
275 276
276 /* Average among active antennas */ 277 /* Average among active antennas */
277 if (num_active_rx) 278 if (num_active_rx)
278 priv->last_rx_noise = (total_silence / num_active_rx) - 107; 279 last_rx_noise = (total_silence / num_active_rx) - 107;
279 else 280 else
280 priv->last_rx_noise = IWL_NOISE_MEAS_NOT_AVAILABLE; 281 last_rx_noise = IWL_NOISE_MEAS_NOT_AVAILABLE;
281 282
282 IWL_DEBUG_CALIB(priv, "inband silence a %u, b %u, c %u, dBm %d\n", 283 IWL_DEBUG_CALIB(priv, "inband silence a %u, b %u, c %u, dBm %d\n",
283 bcn_silence_a, bcn_silence_b, bcn_silence_c, 284 bcn_silence_a, bcn_silence_b, bcn_silence_c,
284 priv->last_rx_noise); 285 last_rx_noise);
285} 286}
286 287
287#ifdef CONFIG_IWLWIFI_DEBUG 288#ifdef CONFIG_IWLWIFI_DEBUG