diff options
| author | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
| commit | 1ac731c529cd4d6adbce134754b51ff7d822b145 (patch) | |
| tree | 143ab3f35ca5f3b69f583c84e6964b17139c2ec1 /drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | |
| parent | 07b4c950f27bef0362dc6ad7ee713aab61d58149 (diff) | |
| parent | 54116d442e001e1b6bd482122043b1870998a1f3 (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.6 merge window.
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c')
| -rw-r--r-- | drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 27 | 
1 files changed, 17 insertions, 10 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c index aa8e08487b52..7dcb1c3ab728 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c @@ -81,7 +81,7 @@ static const u16 iwl_nvm_channels[] = {  	/* 2.4 GHz */  	1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,  	/* 5 GHz */ -	36, 40, 44 , 48, 52, 56, 60, 64, +	36, 40, 44, 48, 52, 56, 60, 64,  	100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144,  	149, 153, 157, 161, 165  }; @@ -860,7 +860,10 @@ iwl_nvm_fixup_sband_iftd(struct iwl_trans *trans,  	/* Advertise an A-MPDU exponent extension based on  	 * operating band  	 */ -	if (sband->band != NL80211_BAND_2GHZ) +	if (sband->band == NL80211_BAND_6GHZ && iftype_data->eht_cap.has_eht) +		iftype_data->he_cap.he_cap_elem.mac_cap_info[3] |= +			IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2; +	else if (sband->band != NL80211_BAND_2GHZ)  		iftype_data->he_cap.he_cap_elem.mac_cap_info[3] |=  			IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_1;  	else @@ -876,16 +879,13 @@ iwl_nvm_fixup_sband_iftd(struct iwl_trans *trans,  				       IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_MASK);  		break;  	case NL80211_BAND_6GHZ: -		if (!is_ap || iwlwifi_mod_params.nvm_file) -			iftype_data->eht_cap.eht_cap_elem.phy_cap_info[0] |= -				IEEE80211_EHT_PHY_CAP0_320MHZ_IN_6GHZ; +		iftype_data->eht_cap.eht_cap_elem.phy_cap_info[0] |= +			IEEE80211_EHT_PHY_CAP0_320MHZ_IN_6GHZ;  		fallthrough;  	case NL80211_BAND_5GHZ:  		iftype_data->he_cap.he_cap_elem.phy_cap_info[0] |= -			IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G; -		if (!is_ap || iwlwifi_mod_params.nvm_file) -			iftype_data->he_cap.he_cap_elem.phy_cap_info[0] |= -				IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G; +			IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G | +			IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G;  		break;  	default:  		WARN_ON(1); @@ -938,6 +938,10 @@ iwl_nvm_fixup_sband_iftd(struct iwl_trans *trans,  		}  	} +	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210 && !is_ap) +		iftype_data->he_cap.he_cap_elem.phy_cap_info[2] |= +			IEEE80211_HE_PHY_CAP2_UL_MU_FULL_MU_MIMO; +  	switch (CSR_HW_RFID_TYPE(trans->hw_rf_id)) {  	case IWL_CFG_RF_TYPE_GF:  	case IWL_CFG_RF_TYPE_MR: @@ -999,15 +1003,18 @@ static void iwl_init_he_hw_capab(struct iwl_trans *trans,  	BUILD_BUG_ON(sizeof(data->iftd.low) != sizeof(iwl_he_eht_capa));  	BUILD_BUG_ON(sizeof(data->iftd.high) != sizeof(iwl_he_eht_capa)); +	BUILD_BUG_ON(sizeof(data->iftd.uhb) != sizeof(iwl_he_eht_capa));  	switch (sband->band) {  	case NL80211_BAND_2GHZ:  		iftype_data = data->iftd.low;  		break;  	case NL80211_BAND_5GHZ: -	case NL80211_BAND_6GHZ:  		iftype_data = data->iftd.high;  		break; +	case NL80211_BAND_6GHZ: +		iftype_data = data->iftd.uhb; +		break;  	default:  		WARN_ON(1);  		return;  |