aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-3945.c
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/iwl-3945.c
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/iwl-3945.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c36
1 files changed, 5 insertions, 31 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);