You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'mac80211-next-for-davem-2015-06-10' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Johannes Berg says: ==================== For this round we mostly have fixes: * mesh fixes from Alexis Green and Chun-Yeow Yeoh, * a documentation fix from Jakub Kicinski, * a missing channel release (from Michal Kazior), * a fix for a signal strength reporting bug (from Sara Sharon), * handle deauth while associating (myself), * don't report mangled TX SKB back to userspace for status (myself), * handle aggregation session timeouts properly in fast-xmit (myself) However, there are also a few cleanups and one big change that affects all drivers (and that required me to pull in your tree) to change the mac80211 HW flags to use an unsigned long bitmap so that we can extend them more easily - we're running out of flags even with a cleanup to remove the two unused ones. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -1373,9 +1373,9 @@ static void adm8211_configure_filter(struct ieee80211_hw *dev,
|
||||
ADM8211_CSR_READ(NAR);
|
||||
|
||||
if (priv->nar & ADM8211_NAR_PR)
|
||||
dev->flags |= IEEE80211_HW_RX_INCLUDES_FCS;
|
||||
ieee80211_hw_set(dev, RX_INCLUDES_FCS);
|
||||
else
|
||||
dev->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS;
|
||||
__clear_bit(IEEE80211_HW_RX_INCLUDES_FCS, dev->flags);
|
||||
|
||||
if (*total_flags & FIF_BCN_PRBRESP_PROMISC)
|
||||
adm8211_set_bssid(dev, bcast);
|
||||
@@ -1861,8 +1861,8 @@ static int adm8211_probe(struct pci_dev *pdev,
|
||||
SET_IEEE80211_PERM_ADDR(dev, perm_addr);
|
||||
|
||||
dev->extra_tx_headroom = sizeof(struct adm8211_tx_hdr);
|
||||
/* dev->flags = IEEE80211_HW_RX_INCLUDES_FCS in promisc mode */
|
||||
dev->flags = IEEE80211_HW_SIGNAL_UNSPEC;
|
||||
/* dev->flags = RX_INCLUDES_FCS in promisc mode */
|
||||
ieee80211_hw_set(dev, SIGNAL_UNSPEC);
|
||||
dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION);
|
||||
|
||||
dev->max_signal = 100; /* FIXME: find better value */
|
||||
|
||||
@@ -2360,8 +2360,8 @@ static int at76_init_new_device(struct at76_priv *priv,
|
||||
priv->hw->wiphy->max_scan_ie_len = 0;
|
||||
priv->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION);
|
||||
priv->hw->wiphy->bands[IEEE80211_BAND_2GHZ] = &at76_supported_band;
|
||||
priv->hw->flags = IEEE80211_HW_RX_INCLUDES_FCS |
|
||||
IEEE80211_HW_SIGNAL_UNSPEC;
|
||||
ieee80211_hw_set(priv->hw, RX_INCLUDES_FCS);
|
||||
ieee80211_hw_set(priv->hw, SIGNAL_UNSPEC);
|
||||
priv->hw->max_signal = 100;
|
||||
|
||||
SET_IEEE80211_DEV(priv->hw, &interface->dev);
|
||||
|
||||
@@ -1682,9 +1682,9 @@ static int ar5523_probe(struct usb_interface *intf,
|
||||
(id->driver_info & AR5523_FLAG_ABG) ? '5' : '2');
|
||||
|
||||
ar->vif = NULL;
|
||||
hw->flags = IEEE80211_HW_RX_INCLUDES_FCS |
|
||||
IEEE80211_HW_SIGNAL_DBM |
|
||||
IEEE80211_HW_HAS_RATE_CONTROL;
|
||||
ieee80211_hw_set(hw, HAS_RATE_CONTROL);
|
||||
ieee80211_hw_set(hw, RX_INCLUDES_FCS);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
hw->extra_tx_headroom = sizeof(struct ar5523_tx_desc) +
|
||||
sizeof(struct ar5523_chunk);
|
||||
hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION);
|
||||
|
||||
@@ -6882,21 +6882,21 @@ int ath10k_mac_register(struct ath10k *ar)
|
||||
BIT(NL80211_IFTYPE_P2P_CLIENT) |
|
||||
BIT(NL80211_IFTYPE_P2P_GO);
|
||||
|
||||
ar->hw->flags = IEEE80211_HW_SIGNAL_DBM |
|
||||
IEEE80211_HW_SUPPORTS_PS |
|
||||
IEEE80211_HW_SUPPORTS_DYNAMIC_PS |
|
||||
IEEE80211_HW_MFP_CAPABLE |
|
||||
IEEE80211_HW_REPORTS_TX_ACK_STATUS |
|
||||
IEEE80211_HW_HAS_RATE_CONTROL |
|
||||
IEEE80211_HW_AP_LINK_PS |
|
||||
IEEE80211_HW_SPECTRUM_MGMT |
|
||||
IEEE80211_HW_SW_CRYPTO_CONTROL |
|
||||
IEEE80211_HW_SUPPORT_FAST_XMIT |
|
||||
IEEE80211_HW_CONNECTION_MONITOR |
|
||||
IEEE80211_HW_SUPPORTS_PER_STA_GTK |
|
||||
IEEE80211_HW_WANT_MONITOR_VIF |
|
||||
IEEE80211_HW_CHANCTX_STA_CSA |
|
||||
IEEE80211_HW_QUEUE_CONTROL;
|
||||
ieee80211_hw_set(ar->hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(ar->hw, SUPPORTS_PS);
|
||||
ieee80211_hw_set(ar->hw, SUPPORTS_DYNAMIC_PS);
|
||||
ieee80211_hw_set(ar->hw, MFP_CAPABLE);
|
||||
ieee80211_hw_set(ar->hw, REPORTS_TX_ACK_STATUS);
|
||||
ieee80211_hw_set(ar->hw, HAS_RATE_CONTROL);
|
||||
ieee80211_hw_set(ar->hw, AP_LINK_PS);
|
||||
ieee80211_hw_set(ar->hw, SPECTRUM_MGMT);
|
||||
ieee80211_hw_set(ar->hw, SW_CRYPTO_CONTROL);
|
||||
ieee80211_hw_set(ar->hw, SUPPORT_FAST_XMIT);
|
||||
ieee80211_hw_set(ar->hw, CONNECTION_MONITOR);
|
||||
ieee80211_hw_set(ar->hw, SUPPORTS_PER_STA_GTK);
|
||||
ieee80211_hw_set(ar->hw, WANT_MONITOR_VIF);
|
||||
ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
|
||||
ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
|
||||
|
||||
ar->hw->wiphy->features |= NL80211_FEATURE_STATIC_SMPS;
|
||||
ar->hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
|
||||
@@ -6905,8 +6905,8 @@ int ath10k_mac_register(struct ath10k *ar)
|
||||
ar->hw->wiphy->features |= NL80211_FEATURE_DYNAMIC_SMPS;
|
||||
|
||||
if (ar->ht_cap_info & WMI_HT_CAP_ENABLED) {
|
||||
ar->hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
|
||||
ar->hw->flags |= IEEE80211_HW_TX_AMPDU_SETUP_IN_HW;
|
||||
ieee80211_hw_set(ar->hw, AMPDU_AGGREGATION);
|
||||
ieee80211_hw_set(ar->hw, TX_AMPDU_SETUP_IN_HW);
|
||||
}
|
||||
|
||||
ar->hw->wiphy->max_scan_ssids = WLAN_SCAN_PARAMS_MAX_SSID;
|
||||
|
||||
@@ -2537,12 +2537,12 @@ ath5k_init_ah(struct ath5k_hw *ah, const struct ath_bus_ops *bus_ops)
|
||||
|
||||
/* Initialize driver private data */
|
||||
SET_IEEE80211_DEV(hw, ah->dev);
|
||||
hw->flags = IEEE80211_HW_RX_INCLUDES_FCS |
|
||||
IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
|
||||
IEEE80211_HW_SIGNAL_DBM |
|
||||
IEEE80211_HW_MFP_CAPABLE |
|
||||
IEEE80211_HW_REPORTS_TX_ACK_STATUS |
|
||||
IEEE80211_HW_SUPPORTS_RC_TABLE;
|
||||
ieee80211_hw_set(hw, SUPPORTS_RC_TABLE);
|
||||
ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
|
||||
ieee80211_hw_set(hw, MFP_CAPABLE);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(hw, RX_INCLUDES_FCS);
|
||||
ieee80211_hw_set(hw, HOST_BROADCAST_PS_BUFFERING);
|
||||
|
||||
hw->wiphy->interface_modes =
|
||||
BIT(NL80211_IFTYPE_AP) |
|
||||
|
||||
@@ -717,18 +717,18 @@ static void ath9k_set_hw_capab(struct ath9k_htc_priv *priv,
|
||||
struct ath_common *common = ath9k_hw_common(priv->ah);
|
||||
struct base_eep_header *pBase;
|
||||
|
||||
hw->flags = IEEE80211_HW_SIGNAL_DBM |
|
||||
IEEE80211_HW_AMPDU_AGGREGATION |
|
||||
IEEE80211_HW_SPECTRUM_MGMT |
|
||||
IEEE80211_HW_HAS_RATE_CONTROL |
|
||||
IEEE80211_HW_RX_INCLUDES_FCS |
|
||||
IEEE80211_HW_PS_NULLFUNC_STACK |
|
||||
IEEE80211_HW_REPORTS_TX_ACK_STATUS |
|
||||
IEEE80211_HW_MFP_CAPABLE |
|
||||
IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING;
|
||||
ieee80211_hw_set(hw, HOST_BROADCAST_PS_BUFFERING);
|
||||
ieee80211_hw_set(hw, MFP_CAPABLE);
|
||||
ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
|
||||
ieee80211_hw_set(hw, PS_NULLFUNC_STACK);
|
||||
ieee80211_hw_set(hw, RX_INCLUDES_FCS);
|
||||
ieee80211_hw_set(hw, HAS_RATE_CONTROL);
|
||||
ieee80211_hw_set(hw, SPECTRUM_MGMT);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
|
||||
|
||||
if (ath9k_ps_enable)
|
||||
hw->flags |= IEEE80211_HW_SUPPORTS_PS;
|
||||
ieee80211_hw_set(hw, SUPPORTS_PS);
|
||||
|
||||
hw->wiphy->interface_modes =
|
||||
BIT(NL80211_IFTYPE_STATION) |
|
||||
|
||||
@@ -796,7 +796,7 @@ static void ath9k_set_mcc_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
|
||||
if (!ath9k_is_chanctx_enabled())
|
||||
return;
|
||||
|
||||
hw->flags |= IEEE80211_HW_QUEUE_CONTROL;
|
||||
ieee80211_hw_set(hw, QUEUE_CONTROL);
|
||||
hw->queues = ATH9K_NUM_TX_QUEUES;
|
||||
hw->offchannel_tx_hw_queue = hw->queues - 1;
|
||||
hw->wiphy->interface_modes &= ~ BIT(NL80211_IFTYPE_WDS);
|
||||
@@ -818,20 +818,20 @@ static void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
|
||||
struct ath_hw *ah = sc->sc_ah;
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
|
||||
hw->flags = IEEE80211_HW_RX_INCLUDES_FCS |
|
||||
IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
|
||||
IEEE80211_HW_SIGNAL_DBM |
|
||||
IEEE80211_HW_PS_NULLFUNC_STACK |
|
||||
IEEE80211_HW_SPECTRUM_MGMT |
|
||||
IEEE80211_HW_REPORTS_TX_ACK_STATUS |
|
||||
IEEE80211_HW_SUPPORTS_RC_TABLE |
|
||||
IEEE80211_HW_SUPPORTS_HT_CCK_RATES;
|
||||
ieee80211_hw_set(hw, SUPPORTS_HT_CCK_RATES);
|
||||
ieee80211_hw_set(hw, SUPPORTS_RC_TABLE);
|
||||
ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
|
||||
ieee80211_hw_set(hw, SPECTRUM_MGMT);
|
||||
ieee80211_hw_set(hw, PS_NULLFUNC_STACK);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(hw, RX_INCLUDES_FCS);
|
||||
ieee80211_hw_set(hw, HOST_BROADCAST_PS_BUFFERING);
|
||||
|
||||
if (ath9k_ps_enable)
|
||||
hw->flags |= IEEE80211_HW_SUPPORTS_PS;
|
||||
ieee80211_hw_set(hw, SUPPORTS_PS);
|
||||
|
||||
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) {
|
||||
hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
|
||||
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
|
||||
|
||||
if (AR_SREV_9280_20_OR_LATER(ah))
|
||||
hw->radiotap_mcs_details |=
|
||||
@@ -839,7 +839,7 @@ static void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
|
||||
}
|
||||
|
||||
if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || ath9k_modparam_nohwcrypt)
|
||||
hw->flags |= IEEE80211_HW_MFP_CAPABLE;
|
||||
ieee80211_hw_set(hw, MFP_CAPABLE);
|
||||
|
||||
hw->wiphy->features |= NL80211_FEATURE_ACTIVE_MONITOR |
|
||||
NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE |
|
||||
|
||||
@@ -286,7 +286,7 @@ static int carl9170_fw(struct ar9170 *ar, const __u8 *data, size_t len)
|
||||
}
|
||||
|
||||
if (SUPP(CARL9170FW_PSM) && SUPP(CARL9170FW_FIXED_5GHZ_PSM))
|
||||
ar->hw->flags |= IEEE80211_HW_SUPPORTS_PS;
|
||||
ieee80211_hw_set(ar->hw, SUPPORTS_PS);
|
||||
|
||||
if (!SUPP(CARL9170FW_USB_INIT_FIRMWARE)) {
|
||||
dev_err(&ar->udev->dev, "firmware does not provide "
|
||||
|
||||
@@ -1844,22 +1844,22 @@ void *carl9170_alloc(size_t priv_size)
|
||||
/* firmware decides which modes we support */
|
||||
hw->wiphy->interface_modes = 0;
|
||||
|
||||
hw->flags |= IEEE80211_HW_RX_INCLUDES_FCS |
|
||||
IEEE80211_HW_MFP_CAPABLE |
|
||||
IEEE80211_HW_REPORTS_TX_ACK_STATUS |
|
||||
IEEE80211_HW_SUPPORTS_PS |
|
||||
IEEE80211_HW_PS_NULLFUNC_STACK |
|
||||
IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC |
|
||||
IEEE80211_HW_SUPPORTS_RC_TABLE |
|
||||
IEEE80211_HW_SIGNAL_DBM |
|
||||
IEEE80211_HW_SUPPORTS_HT_CCK_RATES;
|
||||
ieee80211_hw_set(hw, RX_INCLUDES_FCS);
|
||||
ieee80211_hw_set(hw, MFP_CAPABLE);
|
||||
ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
|
||||
ieee80211_hw_set(hw, SUPPORTS_PS);
|
||||
ieee80211_hw_set(hw, PS_NULLFUNC_STACK);
|
||||
ieee80211_hw_set(hw, NEED_DTIM_BEFORE_ASSOC);
|
||||
ieee80211_hw_set(hw, SUPPORTS_RC_TABLE);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(hw, SUPPORTS_HT_CCK_RATES);
|
||||
|
||||
if (!modparam_noht) {
|
||||
/*
|
||||
* see the comment above, why we allow the user
|
||||
* to disable HT by a module parameter.
|
||||
*/
|
||||
hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
|
||||
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
|
||||
}
|
||||
|
||||
hw->extra_tx_headroom = sizeof(struct _carl9170_tx_superframe);
|
||||
|
||||
@@ -944,12 +944,12 @@ static int wcn36xx_init_ieee80211(struct wcn36xx *wcn)
|
||||
WLAN_CIPHER_SUITE_CCMP,
|
||||
};
|
||||
|
||||
wcn->hw->flags = IEEE80211_HW_SIGNAL_DBM |
|
||||
IEEE80211_HW_HAS_RATE_CONTROL |
|
||||
IEEE80211_HW_SUPPORTS_PS |
|
||||
IEEE80211_HW_CONNECTION_MONITOR |
|
||||
IEEE80211_HW_AMPDU_AGGREGATION |
|
||||
IEEE80211_HW_TIMING_BEACON_ONLY;
|
||||
ieee80211_hw_set(wcn->hw, TIMING_BEACON_ONLY);
|
||||
ieee80211_hw_set(wcn->hw, AMPDU_AGGREGATION);
|
||||
ieee80211_hw_set(wcn->hw, CONNECTION_MONITOR);
|
||||
ieee80211_hw_set(wcn->hw, SUPPORTS_PS);
|
||||
ieee80211_hw_set(wcn->hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(wcn->hw, HAS_RATE_CONTROL);
|
||||
|
||||
wcn->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
|
||||
BIT(NL80211_IFTYPE_AP) |
|
||||
|
||||
@@ -216,9 +216,7 @@ static void wcn36xx_smd_set_sta_params(struct wcn36xx *wcn,
|
||||
memcpy(&sta_params->bssid, vif->addr, ETH_ALEN);
|
||||
|
||||
sta_params->encrypt_type = priv_vif->encrypt_type;
|
||||
sta_params->short_preamble_supported =
|
||||
!(WCN36XX_FLAGS(wcn) &
|
||||
IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE);
|
||||
sta_params->short_preamble_supported = true;
|
||||
|
||||
sta_params->rifs_mode = 0;
|
||||
sta_params->rmf = 0;
|
||||
|
||||
@@ -5605,8 +5605,8 @@ static struct b43_wl *b43_wireless_init(struct b43_bus_dev *dev)
|
||||
wl = hw_to_b43_wl(hw);
|
||||
|
||||
/* fill hw info */
|
||||
hw->flags = IEEE80211_HW_RX_INCLUDES_FCS |
|
||||
IEEE80211_HW_SIGNAL_DBM;
|
||||
ieee80211_hw_set(hw, RX_INCLUDES_FCS);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
|
||||
hw->wiphy->interface_modes =
|
||||
BIT(NL80211_IFTYPE_AP) |
|
||||
|
||||
@@ -3832,8 +3832,9 @@ static int b43legacy_wireless_init(struct ssb_device *dev)
|
||||
}
|
||||
|
||||
/* fill hw info */
|
||||
hw->flags = IEEE80211_HW_RX_INCLUDES_FCS |
|
||||
IEEE80211_HW_SIGNAL_DBM;
|
||||
ieee80211_hw_set(hw, RX_INCLUDES_FCS);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
|
||||
hw->wiphy->interface_modes =
|
||||
BIT(NL80211_IFTYPE_AP) |
|
||||
BIT(NL80211_IFTYPE_STATION) |
|
||||
|
||||
@@ -1060,10 +1060,9 @@ static int ieee_hw_rate_init(struct ieee80211_hw *hw)
|
||||
*/
|
||||
static int ieee_hw_init(struct ieee80211_hw *hw)
|
||||
{
|
||||
hw->flags = IEEE80211_HW_SIGNAL_DBM
|
||||
/* | IEEE80211_HW_CONNECTION_MONITOR What is this? */
|
||||
| IEEE80211_HW_REPORTS_TX_ACK_STATUS
|
||||
| IEEE80211_HW_AMPDU_AGGREGATION;
|
||||
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
|
||||
|
||||
hw->extra_tx_headroom = brcms_c_get_header_len();
|
||||
hw->queues = N_TX_QUEUES;
|
||||
|
||||
@@ -278,14 +278,14 @@ static struct ieee80211_hw *cw1200_init_common(const u8 *macaddr,
|
||||
else
|
||||
priv->ba_tx_tid_mask = 0xff; /* Enable TX BLKACK for all TIDs */
|
||||
|
||||
hw->flags = IEEE80211_HW_SIGNAL_DBM |
|
||||
IEEE80211_HW_SUPPORTS_PS |
|
||||
IEEE80211_HW_SUPPORTS_DYNAMIC_PS |
|
||||
IEEE80211_HW_REPORTS_TX_ACK_STATUS |
|
||||
IEEE80211_HW_CONNECTION_MONITOR |
|
||||
IEEE80211_HW_AMPDU_AGGREGATION |
|
||||
IEEE80211_HW_TX_AMPDU_SETUP_IN_HW |
|
||||
IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC;
|
||||
ieee80211_hw_set(hw, NEED_DTIM_BEFORE_ASSOC);
|
||||
ieee80211_hw_set(hw, TX_AMPDU_SETUP_IN_HW);
|
||||
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
|
||||
ieee80211_hw_set(hw, CONNECTION_MONITOR);
|
||||
ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
|
||||
ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(hw, SUPPORTS_PS);
|
||||
|
||||
hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
|
||||
BIT(NL80211_IFTYPE_ADHOC) |
|
||||
|
||||
@@ -3561,8 +3561,10 @@ il3945_setup_mac(struct il_priv *il)
|
||||
hw->vif_data_size = sizeof(struct il_vif_priv);
|
||||
|
||||
/* Tell mac80211 our characteristics */
|
||||
hw->flags = IEEE80211_HW_SIGNAL_DBM | IEEE80211_HW_SPECTRUM_MGMT |
|
||||
IEEE80211_HW_SUPPORTS_PS | IEEE80211_HW_SUPPORTS_DYNAMIC_PS;
|
||||
ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS);
|
||||
ieee80211_hw_set(hw, SUPPORTS_PS);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(hw, SPECTRUM_MGMT);
|
||||
|
||||
hw->wiphy->interface_modes =
|
||||
BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC);
|
||||
|
||||
@@ -5751,11 +5751,13 @@ il4965_mac_setup_register(struct il_priv *il, u32 max_probe_length)
|
||||
hw->rate_control_algorithm = "iwl-4965-rs";
|
||||
|
||||
/* Tell mac80211 our characteristics */
|
||||
hw->flags =
|
||||
IEEE80211_HW_SIGNAL_DBM | IEEE80211_HW_AMPDU_AGGREGATION |
|
||||
IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC | IEEE80211_HW_SPECTRUM_MGMT |
|
||||
IEEE80211_HW_REPORTS_TX_ACK_STATUS | IEEE80211_HW_SUPPORTS_PS |
|
||||
IEEE80211_HW_SUPPORTS_DYNAMIC_PS;
|
||||
ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS);
|
||||
ieee80211_hw_set(hw, SUPPORTS_PS);
|
||||
ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
|
||||
ieee80211_hw_set(hw, SPECTRUM_MGMT);
|
||||
ieee80211_hw_set(hw, NEED_DTIM_BEFORE_ASSOC);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
|
||||
if (il->cfg->sku & IL_SKU_N)
|
||||
hw->wiphy->features |= NL80211_FEATURE_DYNAMIC_SMPS |
|
||||
NL80211_FEATURE_STATIC_SMPS;
|
||||
|
||||
@@ -104,16 +104,16 @@ int iwlagn_mac_setup_register(struct iwl_priv *priv,
|
||||
hw->rate_control_algorithm = "iwl-agn-rs";
|
||||
|
||||
/* Tell mac80211 our characteristics */
|
||||
hw->flags = IEEE80211_HW_SIGNAL_DBM |
|
||||
IEEE80211_HW_AMPDU_AGGREGATION |
|
||||
IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC |
|
||||
IEEE80211_HW_SPECTRUM_MGMT |
|
||||
IEEE80211_HW_REPORTS_TX_ACK_STATUS |
|
||||
IEEE80211_HW_QUEUE_CONTROL |
|
||||
IEEE80211_HW_SUPPORTS_PS |
|
||||
IEEE80211_HW_SUPPORTS_DYNAMIC_PS |
|
||||
IEEE80211_HW_SUPPORT_FAST_XMIT |
|
||||
IEEE80211_HW_WANT_MONITOR_VIF;
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
|
||||
ieee80211_hw_set(hw, NEED_DTIM_BEFORE_ASSOC);
|
||||
ieee80211_hw_set(hw, SPECTRUM_MGMT);
|
||||
ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
|
||||
ieee80211_hw_set(hw, QUEUE_CONTROL);
|
||||
ieee80211_hw_set(hw, SUPPORTS_PS);
|
||||
ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS);
|
||||
ieee80211_hw_set(hw, SUPPORT_FAST_XMIT);
|
||||
ieee80211_hw_set(hw, WANT_MONITOR_VIF);
|
||||
|
||||
hw->offchannel_tx_hw_queue = IWL_AUX_QUEUE;
|
||||
hw->radiotap_mcs_details |= IEEE80211_RADIOTAP_MCS_HAVE_FMT;
|
||||
@@ -136,7 +136,7 @@ int iwlagn_mac_setup_register(struct iwl_priv *priv,
|
||||
*/
|
||||
if (priv->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_MFP &&
|
||||
!iwlwifi_mod_params.sw_crypto)
|
||||
hw->flags |= IEEE80211_HW_MFP_CAPABLE;
|
||||
ieee80211_hw_set(hw, MFP_CAPABLE);
|
||||
|
||||
hw->sta_data_size = sizeof(struct iwl_station_priv);
|
||||
hw->vif_data_size = sizeof(struct iwl_vif_priv);
|
||||
@@ -1342,9 +1342,9 @@ static int iwlagn_mac_add_interface(struct ieee80211_hw *hw,
|
||||
* other interfaces are added, this is safe.
|
||||
*/
|
||||
if (vif->type == NL80211_IFTYPE_MONITOR)
|
||||
priv->hw->flags |= IEEE80211_HW_RX_INCLUDES_FCS;
|
||||
ieee80211_hw_set(priv->hw, RX_INCLUDES_FCS);
|
||||
else
|
||||
priv->hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS;
|
||||
__clear_bit(IEEE80211_HW_RX_INCLUDES_FCS, priv->hw->flags);
|
||||
|
||||
err = iwl_setup_interface(priv, ctx);
|
||||
if (!err || reset)
|
||||
|
||||
@@ -852,7 +852,7 @@ static int iwl_mvm_mac_ctxt_cmd_listener(struct iwl_mvm *mvm,
|
||||
MAC_FILTER_IN_BEACON |
|
||||
MAC_FILTER_IN_PROBE_REQUEST |
|
||||
MAC_FILTER_IN_CRC32);
|
||||
mvm->hw->flags |= IEEE80211_HW_RX_INCLUDES_FCS;
|
||||
ieee80211_hw_set(mvm->hw, RX_INCLUDES_FCS);
|
||||
|
||||
return iwl_mvm_mac_ctxt_send_cmd(mvm, &cmd);
|
||||
}
|
||||
@@ -1270,7 +1270,7 @@ int iwl_mvm_mac_ctxt_remove(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
|
||||
mvmvif->uploaded = false;
|
||||
|
||||
if (vif->type == NL80211_IFTYPE_MONITOR)
|
||||
mvm->hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS;
|
||||
__clear_bit(IEEE80211_HW_RX_INCLUDES_FCS, mvm->hw->flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -423,19 +423,19 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
|
||||
};
|
||||
|
||||
/* Tell mac80211 our characteristics */
|
||||
hw->flags = IEEE80211_HW_SIGNAL_DBM |
|
||||
IEEE80211_HW_SPECTRUM_MGMT |
|
||||
IEEE80211_HW_REPORTS_TX_ACK_STATUS |
|
||||
IEEE80211_HW_QUEUE_CONTROL |
|
||||
IEEE80211_HW_WANT_MONITOR_VIF |
|
||||
IEEE80211_HW_SUPPORTS_PS |
|
||||
IEEE80211_HW_SUPPORTS_DYNAMIC_PS |
|
||||
IEEE80211_HW_AMPDU_AGGREGATION |
|
||||
IEEE80211_HW_TIMING_BEACON_ONLY |
|
||||
IEEE80211_HW_CONNECTION_MONITOR |
|
||||
IEEE80211_HW_CHANCTX_STA_CSA |
|
||||
IEEE80211_HW_SUPPORT_FAST_XMIT |
|
||||
IEEE80211_HW_SUPPORTS_CLONED_SKBS;
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(hw, SPECTRUM_MGMT);
|
||||
ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
|
||||
ieee80211_hw_set(hw, QUEUE_CONTROL);
|
||||
ieee80211_hw_set(hw, WANT_MONITOR_VIF);
|
||||
ieee80211_hw_set(hw, SUPPORTS_PS);
|
||||
ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS);
|
||||
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
|
||||
ieee80211_hw_set(hw, TIMING_BEACON_ONLY);
|
||||
ieee80211_hw_set(hw, CONNECTION_MONITOR);
|
||||
ieee80211_hw_set(hw, CHANCTX_STA_CSA);
|
||||
ieee80211_hw_set(hw, SUPPORT_FAST_XMIT);
|
||||
ieee80211_hw_set(hw, SUPPORTS_CLONED_SKBS);
|
||||
|
||||
hw->queues = mvm->first_agg_queue;
|
||||
hw->offchannel_tx_hw_queue = IWL_MVM_OFFCHANNEL_QUEUE;
|
||||
@@ -459,7 +459,7 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
|
||||
*/
|
||||
if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_MFP &&
|
||||
!iwlwifi_mod_params.sw_crypto) {
|
||||
hw->flags |= IEEE80211_HW_MFP_CAPABLE;
|
||||
ieee80211_hw_set(hw, MFP_CAPABLE);
|
||||
mvm->ciphers[hw->wiphy->n_cipher_suites] =
|
||||
WLAN_CIPHER_SUITE_AES_CMAC;
|
||||
hw->wiphy->n_cipher_suites++;
|
||||
@@ -474,7 +474,7 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
|
||||
hw->wiphy->n_cipher_suites++;
|
||||
}
|
||||
|
||||
hw->flags |= IEEE80211_SINGLE_HW_SCAN_ON_ALL_BANDS;
|
||||
ieee80211_hw_set(hw, SINGLE_SCAN_ON_ALL_BANDS);
|
||||
hw->wiphy->features |=
|
||||
NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR |
|
||||
NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR |
|
||||
@@ -2885,7 +2885,7 @@ static int iwl_mvm_mac_set_key(struct ieee80211_hw *hw,
|
||||
key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
|
||||
break;
|
||||
case WLAN_CIPHER_SUITE_AES_CMAC:
|
||||
WARN_ON_ONCE(!(hw->flags & IEEE80211_HW_MFP_CAPABLE));
|
||||
WARN_ON_ONCE(!ieee80211_hw_check(hw, MFP_CAPABLE));
|
||||
break;
|
||||
case WLAN_CIPHER_SUITE_WEP40:
|
||||
case WLAN_CIPHER_SUITE_WEP104:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user