Commit ae44b502 authored by Andrew Zaborowski's avatar Andrew Zaborowski Committed by Johannes Berg
Browse files

wireless: Set NL80211_EXT_FEATURE_CQM_RSSI_LIST in multiple drivers



Set the NL80211_EXT_FEATURE_CQM_RSSI_LIST wiphy extended feature
wholesale in all mac80211-based drivers that do not set the
IEEE80211_VIF_BEACON_FILTER flags on their interfaces.  mac80211 will
be processing supplied RSSI values in ieee80211_rx_mgmt_beacon and
will detect when the thresholds set by
ieee80211_set_cqm_rssi_range_config are crossed.  Remaining (few)
drivers need code to enable the firmware to monitor the thresholds.
This is mostly only compile-tested.

Signed-off-by: default avatarAndrew Zaborowski <andrew.zaborowski@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 2c3c5f8c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1917,6 +1917,8 @@ static int adm8211_probe(struct pci_dev *pdev,

	dev->wiphy->bands[NL80211_BAND_2GHZ] = &priv->band;

	wiphy_ext_feature_set(dev->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);

	err = ieee80211_register_hw(dev);
	if (err) {
		printk(KERN_ERR "%s (adm8211): Cannot register device\n",
+2 −0
Original line number Diff line number Diff line
@@ -1689,6 +1689,8 @@ static int ar5523_probe(struct usb_interface *intf,
	if (error)
		goto out_cancel_rx_cmd;

	wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);

	usb_set_intfdata(intf, hw);

	error = ieee80211_register_hw(hw);
+2 −0
Original line number Diff line number Diff line
@@ -8248,6 +8248,8 @@ int ath10k_mac_register(struct ath10k *ar)
	ar->hw->wiphy->cipher_suites = cipher_suites;
	ar->hw->wiphy->n_cipher_suites = ARRAY_SIZE(cipher_suites);

	wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);

	ret = ieee80211_register_hw(ar->hw);
	if (ret) {
		ath10k_err(ar, "failed to register ieee80211: %d\n", ret);
+2 −0
Original line number Diff line number Diff line
@@ -2564,6 +2564,8 @@ ath5k_init_ah(struct ath5k_hw *ah, const struct ath_bus_ops *bus_ops)

	hw->extra_tx_headroom = 2;

	wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);

	/*
	 * Mark the device as detached to avoid processing
	 * interrupts until setup is complete.
+2 −0
Original line number Diff line number Diff line
@@ -780,6 +780,8 @@ static void ath9k_set_hw_capab(struct ath9k_htc_priv *priv,
	}

	SET_IEEE80211_PERM_ADDR(hw, common->macaddr);

	wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
}

static int ath9k_init_firmware_version(struct ath9k_htc_priv *priv)
Loading