cfg80211: remove support for adjacent channel compensation
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Fri, 14 Feb 2020 22:23:38 +0000 (23:23 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 21 Feb 2020 19:00:39 +0000 (20:00 +0100)
The only driver that used that was iwlwifi and it removed
support for this. Remove the feature here as well.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Link: https://lore.kernel.org/r/20200214232336.a530de38e511.I393bc395f6037c8cca6421ed550e3072dc248aed@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/cfg80211.h
net/mac80211/scan.c
net/wireless/scan.c

index 7709b92f5b6bc0ad627842ace7f1ce21676d7075..7ea23caa73010f187e4833ea5eaaa4950b57658a 100644 (file)
@@ -4577,12 +4577,6 @@ struct wiphy_iftype_akm_suites {
  *     and probe responses.  This value should be set if the driver
  *     wishes to limit the number of csa counters. Default (0) means
  *     infinite.
- * @max_adj_channel_rssi_comp: max offset of between the channel on which the
- *     frame was sent and the channel on which the frame was heard for which
- *     the reported rssi is still valid. If a driver is able to compensate the
- *     low rssi when a frame is heard on different channel, then it should set
- *     this variable to the maximal offset for which it can compensate.
- *     This value should be set in MHz.
  * @bss_select_support: bitmask indicating the BSS selection criteria supported
  *     by the driver in the .connect() callback. The bit position maps to the
  *     attribute indices defined in &enum nl80211_bss_select_attr.
@@ -4734,7 +4728,6 @@ struct wiphy {
        u16 max_ap_assoc_sta;
 
        u8 max_num_csa_counters;
-       u8 max_adj_channel_rssi_comp;
 
        u32 bss_select_support;
 
index 4d31d9688dc230275c49b34c876b36ad2b635a1b..fdac8192a5198886986e0a7e0f6d33e8e5f17156 100644 (file)
@@ -201,8 +201,7 @@ ieee80211_bss_info_update(struct ieee80211_local *local,
                               mgmt->bssid, cbss->bssid);
 
        /* In case the signal is invalid update the status */
-       signal_valid = abs(channel->center_freq - cbss->channel->center_freq)
-               <= local->hw.wiphy->max_adj_channel_rssi_comp;
+       signal_valid = channel == cbss->channel;
        if (!signal_valid)
                rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL;
 
index 7f1af8f347b17f681dfcc1aaeea33d0a5ca7d320..dd41e41f9d261216f4ca923d80e5ff850bdfbb20 100644 (file)
@@ -1433,8 +1433,7 @@ cfg80211_inform_single_bss_data(struct wiphy *wiphy,
        }
        rcu_assign_pointer(tmp.pub.ies, ies);
 
-       signal_valid = abs(data->chan->center_freq - channel->center_freq) <=
-               wiphy->max_adj_channel_rssi_comp;
+       signal_valid = data->chan == channel;
        res = cfg80211_bss_update(wiphy_to_rdev(wiphy), &tmp, signal_valid, ts);
        if (!res)
                return NULL;
@@ -1851,8 +1850,7 @@ cfg80211_inform_single_bss_frame_data(struct wiphy *wiphy,
        memcpy(tmp.pub.chain_signal, data->chain_signal, IEEE80211_MAX_CHAINS);
        ether_addr_copy(tmp.parent_bssid, data->parent_bssid);
 
-       signal_valid = abs(data->chan->center_freq - channel->center_freq) <=
-               wiphy->max_adj_channel_rssi_comp;
+       signal_valid = data->chan == channel;
        res = cfg80211_bss_update(wiphy_to_rdev(wiphy), &tmp, signal_valid,
                                  jiffies);
        if (!res)