iwlwifi: mvm: enable VHT MU-MIMO for supported hardware
authorSara Sharon <sara.sharon@intel.com>
Wed, 27 Jan 2016 16:59:48 +0000 (18:59 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Sat, 27 Feb 2016 19:59:58 +0000 (21:59 +0200)
Incoming hardware will support VHT MU-MIMO. Declare this
capability for relevant hardware.

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/intel/iwlwifi/iwl-8000.c
drivers/net/wireless/intel/iwlwifi/iwl-9000.c
drivers/net/wireless/intel/iwlwifi/iwl-config.h
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c

index ad8c588e3eed678eef9f4e2c80371c1ae6523301..97be104d12030f194a07ab67b5f0e0b8ee15f3e6 100644 (file)
@@ -217,6 +217,7 @@ const struct iwl_cfg iwl8265_2ac_cfg = {
        .nvm_ver = IWL8000_NVM_VERSION,
        .nvm_calib_ver = IWL8000_TX_POWER_VERSION,
        .max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,
+       .vht_mu_mimo_supported = true,
 };
 
 const struct iwl_cfg iwl4165_2ac_cfg = {
index 083590698e72c570c787d232e4ae4a901e50d8f6..8e32a57dda0f9016310fc01b27ebd1be061b0304 100644 (file)
@@ -139,7 +139,8 @@ static const struct iwl_tt_params iwl9000_tt_params = {
        .smem_len = IWL9000_SMEM_LEN,                                   \
        .thermal_params = &iwl9000_tt_params,                           \
        .apmg_not_supported = true,                                     \
-       .mq_rx_supported = true
+       .mq_rx_supported = true,                                        \
+       .vht_mu_mimo_supported = true
 
 const struct iwl_cfg iwl9260_2ac_cfg = {
                .name = "Intel(R) Dual Band Wireless AC 9260",
index dad5570d6cc8e33b6eb6e1914bda2e7fdcf37a33..4f2b57e8bbc7ede32c03f2383ac26cf811418b2f 100644 (file)
@@ -312,6 +312,7 @@ struct iwl_pwr_tx_backoff {
  * @smem_offset: offset from which the SMEM begins
  * @smem_len: the length of SMEM
  * @mq_rx_supported: multi-queue rx support
+ * @vht_mu_mimo_supported: VHT MU-MIMO support
  *
  * We enable the driver to be backward compatible wrt. hardware features.
  * API differences in uCode shouldn't be handled here but through TLVs
@@ -364,6 +365,7 @@ struct iwl_cfg {
        const struct iwl_tt_params *thermal_params;
        bool apmg_not_supported;
        bool mq_rx_supported;
+       bool vht_mu_mimo_supported;
 };
 
 /*
index 50f4cc60cf3e9800fdecfe1fe6c40db199f159fb..e84cb8d638a1cb466742d93d2c968a1b916f80a4 100644 (file)
@@ -366,6 +366,9 @@ static void iwl_init_vht_hw_capab(const struct iwl_cfg *cfg,
                       max_ampdu_exponent <<
                       IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_SHIFT;
 
+       if (cfg->vht_mu_mimo_supported)
+               vht_cap->cap |= IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE;
+
        if (cfg->ht_params->ldpc)
                vht_cap->cap |= IEEE80211_VHT_CAP_RXLDPC;