From: kernel test robot <lkp@intel.com>
To: Luca Coelho <luca@coelho.fi>, johannes@sipsolutions.net
Cc: kbuild-all@lists.01.org, clang-built-linux@googlegroups.com,
linux-wireless@vger.kernel.org
Subject: Re: [PATCH 07/15] wireless: align HE capabilities A-MPDU Length Exponent Extension
Date: Sat, 10 Apr 2021 17:20:27 +0800 [thread overview]
Message-ID: <202104101759.SSHeO3Rh-lkp@intel.com> (raw)
In-Reply-To: <iwlwifi.20210409123755.c2a257d3e2df.I3455245d388c52c61dace7e7958dbed7e807cfb6@changeid>
[-- Attachment #1: Type: text/plain, Size: 13195 bytes --]
Hi Luca,
I love your patch! Yet something to improve:
[auto build test ERROR on mac80211-next/master]
[also build test ERROR on mac80211/master wireless-drivers-next/master wireless-drivers/master v5.12-rc6 next-20210409]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
base: https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: x86_64-randconfig-a006-20210409 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project dd453a1389b6a7e6d9214b449d3c54981b1a89b6)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/14d0d9bb385498f53ad9d73ebac33c6ef919be7c
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
git checkout 14d0d9bb385498f53ad9d73ebac33c6ef919be7c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/net/wireless/ath/ath11k/mac.c:1270:4: error: use of undeclared identifier 'IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT'
IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT;
^
drivers/net/wireless/ath/ath11k/mac.c:3810:6: error: use of undeclared identifier 'IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION'
m = IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION |
^
drivers/net/wireless/ath/ath11k/mac.c:3820:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA'
m = IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA |
^
drivers/net/wireless/ath/ath11k/mac.c:3832:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB'
IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB |
^
drivers/net/wireless/ath/ath11k/mac.c:3837:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP7_SRP_BASED_SR'
m = IEEE80211_HE_PHY_CAP7_SRP_BASED_SR |
^
drivers/net/wireless/ath/ath11k/mac.c:3838:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR'
IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR |
^
6 errors generated.
vim +/IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT +1270 drivers/net/wireless/ath/ath11k/mac.c
d5c65159f28953 Kalle Valo 2019-11-23 1233
d5c65159f28953 Kalle Valo 2019-11-23 1234 static void ath11k_peer_assoc_h_he(struct ath11k *ar,
d5c65159f28953 Kalle Valo 2019-11-23 1235 struct ieee80211_vif *vif,
d5c65159f28953 Kalle Valo 2019-11-23 1236 struct ieee80211_sta *sta,
d5c65159f28953 Kalle Valo 2019-11-23 1237 struct peer_assoc_params *arg)
d5c65159f28953 Kalle Valo 2019-11-23 1238 {
9f056ed8ee01ad John Crispin 2019-11-25 1239 const struct ieee80211_sta_he_cap *he_cap = &sta->he_cap;
af6d39db1b046a Tamizh Chelvam 2020-09-08 1240 u8 ampdu_factor;
9f056ed8ee01ad John Crispin 2019-11-25 1241 u16 v;
9f056ed8ee01ad John Crispin 2019-11-25 1242
9f056ed8ee01ad John Crispin 2019-11-25 1243 if (!he_cap->has_he)
9f056ed8ee01ad John Crispin 2019-11-25 1244 return;
9f056ed8ee01ad John Crispin 2019-11-25 1245
9f056ed8ee01ad John Crispin 2019-11-25 1246 arg->he_flag = true;
9f056ed8ee01ad John Crispin 2019-11-25 1247
9f056ed8ee01ad John Crispin 2019-11-25 1248 memcpy(&arg->peer_he_cap_macinfo, he_cap->he_cap_elem.mac_cap_info,
9f056ed8ee01ad John Crispin 2019-11-25 1249 sizeof(arg->peer_he_cap_macinfo));
9f056ed8ee01ad John Crispin 2019-11-25 1250 memcpy(&arg->peer_he_cap_phyinfo, he_cap->he_cap_elem.phy_cap_info,
9f056ed8ee01ad John Crispin 2019-11-25 1251 sizeof(arg->peer_he_cap_phyinfo));
60689de46c7f6a Rajkumar Manoharan 2020-04-24 1252 arg->peer_he_ops = vif->bss_conf.he_oper.params;
9f056ed8ee01ad John Crispin 2019-11-25 1253
9f056ed8ee01ad John Crispin 2019-11-25 1254 /* the top most byte is used to indicate BSS color info */
9f056ed8ee01ad John Crispin 2019-11-25 1255 arg->peer_he_ops &= 0xffffff;
9f056ed8ee01ad John Crispin 2019-11-25 1256
af6d39db1b046a Tamizh Chelvam 2020-09-08 1257 /* As per section 26.6.1 11ax Draft5.0, if the Max AMPDU Exponent Extension
af6d39db1b046a Tamizh Chelvam 2020-09-08 1258 * in HE cap is zero, use the arg->peer_max_mpdu as calculated while parsing
af6d39db1b046a Tamizh Chelvam 2020-09-08 1259 * VHT caps(if VHT caps is present) or HT caps (if VHT caps is not present).
af6d39db1b046a Tamizh Chelvam 2020-09-08 1260 *
af6d39db1b046a Tamizh Chelvam 2020-09-08 1261 * For non-zero value of Max AMPDU Extponent Extension in HE MAC caps,
af6d39db1b046a Tamizh Chelvam 2020-09-08 1262 * if a HE STA sends VHT cap and HE cap IE in assoc request then, use
af6d39db1b046a Tamizh Chelvam 2020-09-08 1263 * MAX_AMPDU_LEN_FACTOR as 20 to calculate max_ampdu length.
af6d39db1b046a Tamizh Chelvam 2020-09-08 1264 * If a HE STA that does not send VHT cap, but HE and HT cap in assoc
af6d39db1b046a Tamizh Chelvam 2020-09-08 1265 * request, then use MAX_AMPDU_LEN_FACTOR as 16 to calculate max_ampdu
af6d39db1b046a Tamizh Chelvam 2020-09-08 1266 * length.
af6d39db1b046a Tamizh Chelvam 2020-09-08 1267 */
af6d39db1b046a Tamizh Chelvam 2020-09-08 1268 ampdu_factor = (he_cap->he_cap_elem.mac_cap_info[3] &
af6d39db1b046a Tamizh Chelvam 2020-09-08 1269 IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK) >>
af6d39db1b046a Tamizh Chelvam 2020-09-08 @1270 IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT;
af6d39db1b046a Tamizh Chelvam 2020-09-08 1271
af6d39db1b046a Tamizh Chelvam 2020-09-08 1272 if (ampdu_factor) {
af6d39db1b046a Tamizh Chelvam 2020-09-08 1273 if (sta->vht_cap.vht_supported)
af6d39db1b046a Tamizh Chelvam 2020-09-08 1274 arg->peer_max_mpdu = (1 << (IEEE80211_HE_VHT_MAX_AMPDU_FACTOR +
af6d39db1b046a Tamizh Chelvam 2020-09-08 1275 ampdu_factor)) - 1;
af6d39db1b046a Tamizh Chelvam 2020-09-08 1276 else if (sta->ht_cap.ht_supported)
af6d39db1b046a Tamizh Chelvam 2020-09-08 1277 arg->peer_max_mpdu = (1 << (IEEE80211_HE_HT_MAX_AMPDU_FACTOR +
af6d39db1b046a Tamizh Chelvam 2020-09-08 1278 ampdu_factor)) - 1;
af6d39db1b046a Tamizh Chelvam 2020-09-08 1279 }
af6d39db1b046a Tamizh Chelvam 2020-09-08 1280
9f056ed8ee01ad John Crispin 2019-11-25 1281 if (he_cap->he_cap_elem.phy_cap_info[6] &
9f056ed8ee01ad John Crispin 2019-11-25 1282 IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) {
9f056ed8ee01ad John Crispin 2019-11-25 1283 int bit = 7;
9f056ed8ee01ad John Crispin 2019-11-25 1284 int nss, ru;
9f056ed8ee01ad John Crispin 2019-11-25 1285
9f056ed8ee01ad John Crispin 2019-11-25 1286 arg->peer_ppet.numss_m1 = he_cap->ppe_thres[0] &
9f056ed8ee01ad John Crispin 2019-11-25 1287 IEEE80211_PPE_THRES_NSS_MASK;
9f056ed8ee01ad John Crispin 2019-11-25 1288 arg->peer_ppet.ru_bit_mask =
9f056ed8ee01ad John Crispin 2019-11-25 1289 (he_cap->ppe_thres[0] &
9f056ed8ee01ad John Crispin 2019-11-25 1290 IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK) >>
9f056ed8ee01ad John Crispin 2019-11-25 1291 IEEE80211_PPE_THRES_RU_INDEX_BITMASK_POS;
9f056ed8ee01ad John Crispin 2019-11-25 1292
9f056ed8ee01ad John Crispin 2019-11-25 1293 for (nss = 0; nss <= arg->peer_ppet.numss_m1; nss++) {
9f056ed8ee01ad John Crispin 2019-11-25 1294 for (ru = 0; ru < 4; ru++) {
9f056ed8ee01ad John Crispin 2019-11-25 1295 u32 val = 0;
9f056ed8ee01ad John Crispin 2019-11-25 1296 int i;
9f056ed8ee01ad John Crispin 2019-11-25 1297
9f056ed8ee01ad John Crispin 2019-11-25 1298 if ((arg->peer_ppet.ru_bit_mask & BIT(ru)) == 0)
9f056ed8ee01ad John Crispin 2019-11-25 1299 continue;
9f056ed8ee01ad John Crispin 2019-11-25 1300 for (i = 0; i < 6; i++) {
9f056ed8ee01ad John Crispin 2019-11-25 1301 val >>= 1;
9f056ed8ee01ad John Crispin 2019-11-25 1302 val |= ((he_cap->ppe_thres[bit / 8] >>
9f056ed8ee01ad John Crispin 2019-11-25 1303 (bit % 8)) & 0x1) << 5;
9f056ed8ee01ad John Crispin 2019-11-25 1304 bit++;
9f056ed8ee01ad John Crispin 2019-11-25 1305 }
9f056ed8ee01ad John Crispin 2019-11-25 1306 arg->peer_ppet.ppet16_ppet8_ru3_ru0[nss] |=
9f056ed8ee01ad John Crispin 2019-11-25 1307 val << (ru * 6);
9f056ed8ee01ad John Crispin 2019-11-25 1308 }
9f056ed8ee01ad John Crispin 2019-11-25 1309 }
9f056ed8ee01ad John Crispin 2019-11-25 1310 }
9f056ed8ee01ad John Crispin 2019-11-25 1311
6d293d447670da John Crispin 2019-11-25 1312 if (he_cap->he_cap_elem.mac_cap_info[0] & IEEE80211_HE_MAC_CAP0_TWT_RES)
6d293d447670da John Crispin 2019-11-25 1313 arg->twt_responder = true;
6d293d447670da John Crispin 2019-11-25 1314 if (he_cap->he_cap_elem.mac_cap_info[0] & IEEE80211_HE_MAC_CAP0_TWT_REQ)
6d293d447670da John Crispin 2019-11-25 1315 arg->twt_requester = true;
6d293d447670da John Crispin 2019-11-25 1316
9f056ed8ee01ad John Crispin 2019-11-25 1317 switch (sta->bandwidth) {
9f056ed8ee01ad John Crispin 2019-11-25 1318 case IEEE80211_STA_RX_BW_160:
9f056ed8ee01ad John Crispin 2019-11-25 1319 if (he_cap->he_cap_elem.phy_cap_info[0] &
9f056ed8ee01ad John Crispin 2019-11-25 1320 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G) {
9f056ed8ee01ad John Crispin 2019-11-25 1321 v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80p80);
9f056ed8ee01ad John Crispin 2019-11-25 1322 arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1323
9f056ed8ee01ad John Crispin 2019-11-25 1324 v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80p80);
9f056ed8ee01ad John Crispin 2019-11-25 1325 arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1326
9f056ed8ee01ad John Crispin 2019-11-25 1327 arg->peer_he_mcs_count++;
9f056ed8ee01ad John Crispin 2019-11-25 1328 }
9f056ed8ee01ad John Crispin 2019-11-25 1329 v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_160);
9f056ed8ee01ad John Crispin 2019-11-25 1330 arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1331
9f056ed8ee01ad John Crispin 2019-11-25 1332 v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_160);
9f056ed8ee01ad John Crispin 2019-11-25 1333 arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1334
9f056ed8ee01ad John Crispin 2019-11-25 1335 arg->peer_he_mcs_count++;
0b294aebb6a00b Gustavo A. R. Silva 2020-07-27 1336 fallthrough;
9f056ed8ee01ad John Crispin 2019-11-25 1337
9f056ed8ee01ad John Crispin 2019-11-25 1338 default:
9f056ed8ee01ad John Crispin 2019-11-25 1339 v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80);
9f056ed8ee01ad John Crispin 2019-11-25 1340 arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1341
9f056ed8ee01ad John Crispin 2019-11-25 1342 v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80);
9f056ed8ee01ad John Crispin 2019-11-25 1343 arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1344
9f056ed8ee01ad John Crispin 2019-11-25 1345 arg->peer_he_mcs_count++;
9f056ed8ee01ad John Crispin 2019-11-25 1346 break;
9f056ed8ee01ad John Crispin 2019-11-25 1347 }
d5c65159f28953 Kalle Valo 2019-11-23 1348 }
d5c65159f28953 Kalle Valo 2019-11-23 1349
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36830 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 07/15] wireless: align HE capabilities A-MPDU Length Exponent Extension
Date: Sat, 10 Apr 2021 17:20:27 +0800 [thread overview]
Message-ID: <202104101759.SSHeO3Rh-lkp@intel.com> (raw)
In-Reply-To: <iwlwifi.20210409123755.c2a257d3e2df.I3455245d388c52c61dace7e7958dbed7e807cfb6@changeid>
[-- Attachment #1: Type: text/plain, Size: 13372 bytes --]
Hi Luca,
I love your patch! Yet something to improve:
[auto build test ERROR on mac80211-next/master]
[also build test ERROR on mac80211/master wireless-drivers-next/master wireless-drivers/master v5.12-rc6 next-20210409]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
base: https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: x86_64-randconfig-a006-20210409 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project dd453a1389b6a7e6d9214b449d3c54981b1a89b6)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/14d0d9bb385498f53ad9d73ebac33c6ef919be7c
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
git checkout 14d0d9bb385498f53ad9d73ebac33c6ef919be7c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/net/wireless/ath/ath11k/mac.c:1270:4: error: use of undeclared identifier 'IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT'
IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT;
^
drivers/net/wireless/ath/ath11k/mac.c:3810:6: error: use of undeclared identifier 'IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION'
m = IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION |
^
drivers/net/wireless/ath/ath11k/mac.c:3820:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA'
m = IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA |
^
drivers/net/wireless/ath/ath11k/mac.c:3832:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB'
IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB |
^
drivers/net/wireless/ath/ath11k/mac.c:3837:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP7_SRP_BASED_SR'
m = IEEE80211_HE_PHY_CAP7_SRP_BASED_SR |
^
drivers/net/wireless/ath/ath11k/mac.c:3838:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR'
IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR |
^
6 errors generated.
vim +/IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT +1270 drivers/net/wireless/ath/ath11k/mac.c
d5c65159f28953 Kalle Valo 2019-11-23 1233
d5c65159f28953 Kalle Valo 2019-11-23 1234 static void ath11k_peer_assoc_h_he(struct ath11k *ar,
d5c65159f28953 Kalle Valo 2019-11-23 1235 struct ieee80211_vif *vif,
d5c65159f28953 Kalle Valo 2019-11-23 1236 struct ieee80211_sta *sta,
d5c65159f28953 Kalle Valo 2019-11-23 1237 struct peer_assoc_params *arg)
d5c65159f28953 Kalle Valo 2019-11-23 1238 {
9f056ed8ee01ad John Crispin 2019-11-25 1239 const struct ieee80211_sta_he_cap *he_cap = &sta->he_cap;
af6d39db1b046a Tamizh Chelvam 2020-09-08 1240 u8 ampdu_factor;
9f056ed8ee01ad John Crispin 2019-11-25 1241 u16 v;
9f056ed8ee01ad John Crispin 2019-11-25 1242
9f056ed8ee01ad John Crispin 2019-11-25 1243 if (!he_cap->has_he)
9f056ed8ee01ad John Crispin 2019-11-25 1244 return;
9f056ed8ee01ad John Crispin 2019-11-25 1245
9f056ed8ee01ad John Crispin 2019-11-25 1246 arg->he_flag = true;
9f056ed8ee01ad John Crispin 2019-11-25 1247
9f056ed8ee01ad John Crispin 2019-11-25 1248 memcpy(&arg->peer_he_cap_macinfo, he_cap->he_cap_elem.mac_cap_info,
9f056ed8ee01ad John Crispin 2019-11-25 1249 sizeof(arg->peer_he_cap_macinfo));
9f056ed8ee01ad John Crispin 2019-11-25 1250 memcpy(&arg->peer_he_cap_phyinfo, he_cap->he_cap_elem.phy_cap_info,
9f056ed8ee01ad John Crispin 2019-11-25 1251 sizeof(arg->peer_he_cap_phyinfo));
60689de46c7f6a Rajkumar Manoharan 2020-04-24 1252 arg->peer_he_ops = vif->bss_conf.he_oper.params;
9f056ed8ee01ad John Crispin 2019-11-25 1253
9f056ed8ee01ad John Crispin 2019-11-25 1254 /* the top most byte is used to indicate BSS color info */
9f056ed8ee01ad John Crispin 2019-11-25 1255 arg->peer_he_ops &= 0xffffff;
9f056ed8ee01ad John Crispin 2019-11-25 1256
af6d39db1b046a Tamizh Chelvam 2020-09-08 1257 /* As per section 26.6.1 11ax Draft5.0, if the Max AMPDU Exponent Extension
af6d39db1b046a Tamizh Chelvam 2020-09-08 1258 * in HE cap is zero, use the arg->peer_max_mpdu as calculated while parsing
af6d39db1b046a Tamizh Chelvam 2020-09-08 1259 * VHT caps(if VHT caps is present) or HT caps (if VHT caps is not present).
af6d39db1b046a Tamizh Chelvam 2020-09-08 1260 *
af6d39db1b046a Tamizh Chelvam 2020-09-08 1261 * For non-zero value of Max AMPDU Extponent Extension in HE MAC caps,
af6d39db1b046a Tamizh Chelvam 2020-09-08 1262 * if a HE STA sends VHT cap and HE cap IE in assoc request then, use
af6d39db1b046a Tamizh Chelvam 2020-09-08 1263 * MAX_AMPDU_LEN_FACTOR as 20 to calculate max_ampdu length.
af6d39db1b046a Tamizh Chelvam 2020-09-08 1264 * If a HE STA that does not send VHT cap, but HE and HT cap in assoc
af6d39db1b046a Tamizh Chelvam 2020-09-08 1265 * request, then use MAX_AMPDU_LEN_FACTOR as 16 to calculate max_ampdu
af6d39db1b046a Tamizh Chelvam 2020-09-08 1266 * length.
af6d39db1b046a Tamizh Chelvam 2020-09-08 1267 */
af6d39db1b046a Tamizh Chelvam 2020-09-08 1268 ampdu_factor = (he_cap->he_cap_elem.mac_cap_info[3] &
af6d39db1b046a Tamizh Chelvam 2020-09-08 1269 IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK) >>
af6d39db1b046a Tamizh Chelvam 2020-09-08 @1270 IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT;
af6d39db1b046a Tamizh Chelvam 2020-09-08 1271
af6d39db1b046a Tamizh Chelvam 2020-09-08 1272 if (ampdu_factor) {
af6d39db1b046a Tamizh Chelvam 2020-09-08 1273 if (sta->vht_cap.vht_supported)
af6d39db1b046a Tamizh Chelvam 2020-09-08 1274 arg->peer_max_mpdu = (1 << (IEEE80211_HE_VHT_MAX_AMPDU_FACTOR +
af6d39db1b046a Tamizh Chelvam 2020-09-08 1275 ampdu_factor)) - 1;
af6d39db1b046a Tamizh Chelvam 2020-09-08 1276 else if (sta->ht_cap.ht_supported)
af6d39db1b046a Tamizh Chelvam 2020-09-08 1277 arg->peer_max_mpdu = (1 << (IEEE80211_HE_HT_MAX_AMPDU_FACTOR +
af6d39db1b046a Tamizh Chelvam 2020-09-08 1278 ampdu_factor)) - 1;
af6d39db1b046a Tamizh Chelvam 2020-09-08 1279 }
af6d39db1b046a Tamizh Chelvam 2020-09-08 1280
9f056ed8ee01ad John Crispin 2019-11-25 1281 if (he_cap->he_cap_elem.phy_cap_info[6] &
9f056ed8ee01ad John Crispin 2019-11-25 1282 IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) {
9f056ed8ee01ad John Crispin 2019-11-25 1283 int bit = 7;
9f056ed8ee01ad John Crispin 2019-11-25 1284 int nss, ru;
9f056ed8ee01ad John Crispin 2019-11-25 1285
9f056ed8ee01ad John Crispin 2019-11-25 1286 arg->peer_ppet.numss_m1 = he_cap->ppe_thres[0] &
9f056ed8ee01ad John Crispin 2019-11-25 1287 IEEE80211_PPE_THRES_NSS_MASK;
9f056ed8ee01ad John Crispin 2019-11-25 1288 arg->peer_ppet.ru_bit_mask =
9f056ed8ee01ad John Crispin 2019-11-25 1289 (he_cap->ppe_thres[0] &
9f056ed8ee01ad John Crispin 2019-11-25 1290 IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK) >>
9f056ed8ee01ad John Crispin 2019-11-25 1291 IEEE80211_PPE_THRES_RU_INDEX_BITMASK_POS;
9f056ed8ee01ad John Crispin 2019-11-25 1292
9f056ed8ee01ad John Crispin 2019-11-25 1293 for (nss = 0; nss <= arg->peer_ppet.numss_m1; nss++) {
9f056ed8ee01ad John Crispin 2019-11-25 1294 for (ru = 0; ru < 4; ru++) {
9f056ed8ee01ad John Crispin 2019-11-25 1295 u32 val = 0;
9f056ed8ee01ad John Crispin 2019-11-25 1296 int i;
9f056ed8ee01ad John Crispin 2019-11-25 1297
9f056ed8ee01ad John Crispin 2019-11-25 1298 if ((arg->peer_ppet.ru_bit_mask & BIT(ru)) == 0)
9f056ed8ee01ad John Crispin 2019-11-25 1299 continue;
9f056ed8ee01ad John Crispin 2019-11-25 1300 for (i = 0; i < 6; i++) {
9f056ed8ee01ad John Crispin 2019-11-25 1301 val >>= 1;
9f056ed8ee01ad John Crispin 2019-11-25 1302 val |= ((he_cap->ppe_thres[bit / 8] >>
9f056ed8ee01ad John Crispin 2019-11-25 1303 (bit % 8)) & 0x1) << 5;
9f056ed8ee01ad John Crispin 2019-11-25 1304 bit++;
9f056ed8ee01ad John Crispin 2019-11-25 1305 }
9f056ed8ee01ad John Crispin 2019-11-25 1306 arg->peer_ppet.ppet16_ppet8_ru3_ru0[nss] |=
9f056ed8ee01ad John Crispin 2019-11-25 1307 val << (ru * 6);
9f056ed8ee01ad John Crispin 2019-11-25 1308 }
9f056ed8ee01ad John Crispin 2019-11-25 1309 }
9f056ed8ee01ad John Crispin 2019-11-25 1310 }
9f056ed8ee01ad John Crispin 2019-11-25 1311
6d293d447670da John Crispin 2019-11-25 1312 if (he_cap->he_cap_elem.mac_cap_info[0] & IEEE80211_HE_MAC_CAP0_TWT_RES)
6d293d447670da John Crispin 2019-11-25 1313 arg->twt_responder = true;
6d293d447670da John Crispin 2019-11-25 1314 if (he_cap->he_cap_elem.mac_cap_info[0] & IEEE80211_HE_MAC_CAP0_TWT_REQ)
6d293d447670da John Crispin 2019-11-25 1315 arg->twt_requester = true;
6d293d447670da John Crispin 2019-11-25 1316
9f056ed8ee01ad John Crispin 2019-11-25 1317 switch (sta->bandwidth) {
9f056ed8ee01ad John Crispin 2019-11-25 1318 case IEEE80211_STA_RX_BW_160:
9f056ed8ee01ad John Crispin 2019-11-25 1319 if (he_cap->he_cap_elem.phy_cap_info[0] &
9f056ed8ee01ad John Crispin 2019-11-25 1320 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G) {
9f056ed8ee01ad John Crispin 2019-11-25 1321 v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80p80);
9f056ed8ee01ad John Crispin 2019-11-25 1322 arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1323
9f056ed8ee01ad John Crispin 2019-11-25 1324 v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80p80);
9f056ed8ee01ad John Crispin 2019-11-25 1325 arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1326
9f056ed8ee01ad John Crispin 2019-11-25 1327 arg->peer_he_mcs_count++;
9f056ed8ee01ad John Crispin 2019-11-25 1328 }
9f056ed8ee01ad John Crispin 2019-11-25 1329 v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_160);
9f056ed8ee01ad John Crispin 2019-11-25 1330 arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1331
9f056ed8ee01ad John Crispin 2019-11-25 1332 v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_160);
9f056ed8ee01ad John Crispin 2019-11-25 1333 arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1334
9f056ed8ee01ad John Crispin 2019-11-25 1335 arg->peer_he_mcs_count++;
0b294aebb6a00b Gustavo A. R. Silva 2020-07-27 1336 fallthrough;
9f056ed8ee01ad John Crispin 2019-11-25 1337
9f056ed8ee01ad John Crispin 2019-11-25 1338 default:
9f056ed8ee01ad John Crispin 2019-11-25 1339 v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80);
9f056ed8ee01ad John Crispin 2019-11-25 1340 arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1341
9f056ed8ee01ad John Crispin 2019-11-25 1342 v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80);
9f056ed8ee01ad John Crispin 2019-11-25 1343 arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v;
9f056ed8ee01ad John Crispin 2019-11-25 1344
9f056ed8ee01ad John Crispin 2019-11-25 1345 arg->peer_he_mcs_count++;
9f056ed8ee01ad John Crispin 2019-11-25 1346 break;
9f056ed8ee01ad John Crispin 2019-11-25 1347 }
d5c65159f28953 Kalle Valo 2019-11-23 1348 }
d5c65159f28953 Kalle Valo 2019-11-23 1349
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36830 bytes --]
next prev parent reply other threads:[~2021-04-10 9:21 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-09 9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
2021-04-09 9:40 ` [PATCH 01/15] mac80211: drop the connection if firmware crashed while in CSA Luca Coelho
2021-04-09 9:40 ` [PATCH 02/15] nl80211: Add new RSNXE related nl80211 extended features Luca Coelho
2021-04-09 9:40 ` [PATCH 03/15] mac80211: properly drop the connection in case of invalid CSA IE Luca Coelho
2021-04-09 9:40 ` [PATCH 04/15] wireless: align some HE capabilities with the spec Luca Coelho
2021-04-09 12:24 ` kernel test robot
2021-04-09 12:24 ` kernel test robot
2021-04-09 23:31 ` kernel test robot
2021-04-09 23:31 ` kernel test robot
2021-04-09 9:40 ` [PATCH 05/15] cfg80211: don't WARN if a self-managed device doesn't have a regdom Luca Coelho
2021-04-09 9:40 ` [PATCH 06/15] mac80211: make ieee80211_vif_to_wdev work when the vif isn't in the driver Luca Coelho
2021-04-09 9:40 ` [PATCH 07/15] wireless: align HE capabilities A-MPDU Length Exponent Extension Luca Coelho
2021-04-09 13:39 ` kernel test robot
2021-04-09 13:39 ` kernel test robot
2021-04-10 9:20 ` kernel test robot [this message]
2021-04-10 9:20 ` kernel test robot
2021-04-09 9:40 ` [PATCH 08/15] cfg80211: allow to specifying a reason for hw_rfkill Luca Coelho
2021-04-09 9:47 ` Johannes Berg
2021-04-09 9:55 ` Luca Coelho
2021-04-09 9:40 ` [PATCH 09/15] cfg80211: Remove wrong RNR IE validation check Luca Coelho
2021-04-09 9:40 ` [PATCH 10/15] mac80211: bail out if cipher schemes are invalid Luca Coelho
2021-04-09 9:40 ` [PATCH 11/15] wireless: fix spelling of A-MSDU in HE capabilities Luca Coelho
2021-04-09 19:02 ` kernel test robot
2021-04-09 19:02 ` kernel test robot
2021-04-09 9:40 ` [PATCH 12/15] nl80211/cfg80211: add a flag to negotiate for LMR feedback in NDP ranging Luca Coelho
2021-04-09 9:40 ` [PATCH 13/15] ieee80211: add the values of ranging parameters max LTF total field Luca Coelho
2021-04-09 9:40 ` [PATCH 14/15] mac80211: clear the beacon's CRC after channel switch Luca Coelho
2021-04-09 9:40 ` [PATCH 15/15] mac80211: aes_cmac: check crypto_shash_setkey() return value Luca Coelho
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202104101759.SSHeO3Rh-lkp@intel.com \
--to=lkp@intel.com \
--cc=clang-built-linux@googlegroups.com \
--cc=johannes@sipsolutions.net \
--cc=kbuild-all@lists.01.org \
--cc=linux-wireless@vger.kernel.org \
--cc=luca@coelho.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.