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-a005-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/ab7f3700d2d0fefb429cfbb3763930761035754c 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 ab7f3700d2d0fefb429cfbb3763930761035754c # 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@xxxxxxxxx> All errors (new ones prefixed by >>): >> drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c:641:6: error: use of undeclared identifier 'IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU' IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU, ^ >> drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c:759:47: error: invalid application of 'sizeof' to an incomplete type 'const struct ieee80211_sband_iftype_data []' BUILD_BUG_ON(sizeof(data->iftd.low) != sizeof(iwl_he_capa)); ^~~~~~~~~~~~~ include/linux/build_bug.h:50:19: note: expanded from macro 'BUILD_BUG_ON' BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition) ^~~~~~~~~ include/linux/build_bug.h:39:58: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~ include/linux/compiler_types.h:320:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:308:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:300:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c:760:48: error: invalid application of 'sizeof' to an incomplete type 'const struct ieee80211_sband_iftype_data []' BUILD_BUG_ON(sizeof(data->iftd.high) != sizeof(iwl_he_capa)); ^~~~~~~~~~~~~ include/linux/build_bug.h:50:19: note: expanded from macro 'BUILD_BUG_ON' BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition) ^~~~~~~~~ include/linux/build_bug.h:39:58: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~ include/linux/compiler_types.h:320:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:308:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:300:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c:775:41: error: invalid application of 'sizeof' to an incomplete type 'const struct ieee80211_sband_iftype_data []' memcpy(iftype_data, iwl_he_capa, sizeof(iwl_he_capa)); ^~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c:778:25: error: invalid application of 'sizeof' to an incomplete type 'const struct ieee80211_sband_iftype_data []' sband->n_iftype_data = ARRAY_SIZE(iwl_he_capa); ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:49:32: note: expanded from macro 'ARRAY_SIZE' #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ^~~~~ 5 errors generated. vim +/IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU +641 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c 33158fefc88e58 drivers/net/wireless/iwlwifi/iwl-nvm-parse.c Eytan Lifshitz 2013-02-20 536 d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 537 static const struct ieee80211_sband_iftype_data iwl_he_capa[] = { 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 538 { 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 539 .types_mask = BIT(NL80211_IFTYPE_STATION), 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 540 .he_cap = { 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 541 .has_he = true, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 542 .he_cap_elem = { 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 543 .mac_cap_info[0] = add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 544 IEEE80211_HE_MAC_CAP0_HTC_HE | add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 545 IEEE80211_HE_MAC_CAP0_TWT_REQ, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 546 .mac_cap_info[1] = 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 547 IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US | add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 548 IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 549 .mac_cap_info[2] = 38af8d5a90a8c3 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Ilan Peer 2020-04-17 550 IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 551 .mac_cap_info[3] = add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 552 IEEE80211_HE_MAC_CAP3_OMI_CONTROL | 14d0d9bb385498 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2021-04-09 553 IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2, add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 554 .mac_cap_info[4] = ab7f3700d2d0fe drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2021-04-09 555 IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU | add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 556 IEEE80211_HE_MAC_CAP4_MULTI_TID_AGG_TX_QOS_B39, add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 557 .mac_cap_info[5] = add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 558 IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B40 | add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 559 IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B41 | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 560 IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 561 IEEE80211_HE_MAC_CAP5_HE_DYNAMIC_SM_PS | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 562 IEEE80211_HE_MAC_CAP5_HT_VHT_TRIG_FRAME_RX, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 563 .phy_cap_info[0] = 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 564 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G | 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 565 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G | 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 566 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 567 .phy_cap_info[1] = add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 568 IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK | 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 569 IEEE80211_HE_PHY_CAP1_DEVICE_CLASS_A | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 570 IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 571 .phy_cap_info[2] = 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 572 IEEE80211_HE_PHY_CAP2_NDP_4x_LTF_AND_3_2US, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 573 .phy_cap_info[3] = 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 574 IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_NO_DCM | 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 575 IEEE80211_HE_PHY_CAP3_DCM_MAX_TX_NSS_1 | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 576 IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_NO_DCM | 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 577 IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_1, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 578 .phy_cap_info[4] = 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 579 IEEE80211_HE_PHY_CAP4_SU_BEAMFORMEE | 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 580 IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_8 | 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 581 IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_8, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 582 .phy_cap_info[5] = 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 583 IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_2 | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 584 IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_2, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 585 .phy_cap_info[6] = 13582e33bee863 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2021-04-09 586 IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB | 13582e33bee863 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2021-04-09 587 IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB | 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 588 IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 589 .phy_cap_info[7] = 13582e33bee863 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2021-04-09 590 IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_SUPP | 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 591 IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI | add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 592 IEEE80211_HE_PHY_CAP7_MAX_NC_1, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 593 .phy_cap_info[8] = 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 594 IEEE80211_HE_PHY_CAP8_HE_ER_SU_PPDU_4XLTF_AND_08_US_GI | 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 595 IEEE80211_HE_PHY_CAP8_20MHZ_IN_40MHZ_HE_PPDU_IN_2G | 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 596 IEEE80211_HE_PHY_CAP8_20MHZ_IN_160MHZ_HE_PPDU | add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 597 IEEE80211_HE_PHY_CAP8_80MHZ_IN_160MHZ_HE_PPDU | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 598 IEEE80211_HE_PHY_CAP8_DCM_MAX_RU_2x996, add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 599 .phy_cap_info[9] = add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 600 IEEE80211_HE_PHY_CAP9_NON_TRIGGERED_CQI_FEEDBACK | add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 601 IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_COMP_SIGB | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 602 IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_NON_COMP_SIGB | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 603 IEEE80211_HE_PHY_CAP9_NOMIMAL_PKT_PADDING_RESERVED, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 604 }, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 605 /* 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 606 * Set default Tx/Rx HE MCS NSS Support field. 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 607 * Indicate support for up to 2 spatial streams and all 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 608 * MCS, without any special cases 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 609 */ 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 610 .he_mcs_nss_supp = { 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 611 .rx_mcs_80 = cpu_to_le16(0xfffa), 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 612 .tx_mcs_80 = cpu_to_le16(0xfffa), 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 613 .rx_mcs_160 = cpu_to_le16(0xfffa), 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 614 .tx_mcs_160 = cpu_to_le16(0xfffa), 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 615 .rx_mcs_80p80 = cpu_to_le16(0xffff), 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 616 .tx_mcs_80p80 = cpu_to_le16(0xffff), 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 617 }, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 618 /* 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 619 * Set default PPE thresholds, with PPET16 set to 0, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 620 * PPET8 set to 7 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 621 */ 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 622 .ppe_thres = {0x61, 0x1c, 0xc7, 0x71}, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 623 }, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 624 }, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 625 { 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 626 .types_mask = BIT(NL80211_IFTYPE_AP), 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 627 .he_cap = { 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 628 .has_he = true, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 629 .he_cap_elem = { 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 630 .mac_cap_info[0] = 7360f99e0b99e3 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Emmanuel Grumbach 2018-09-12 631 IEEE80211_HE_MAC_CAP0_HTC_HE, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 632 .mac_cap_info[1] = 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 633 IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US | 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 634 IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 635 .mac_cap_info[2] = 38af8d5a90a8c3 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Ilan Peer 2020-04-17 636 IEEE80211_HE_MAC_CAP2_BSR, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 637 .mac_cap_info[3] = 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 638 IEEE80211_HE_MAC_CAP3_OMI_CONTROL | 14d0d9bb385498 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2021-04-09 639 IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 640 .mac_cap_info[4] = 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 @641 IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU, 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 642 .mac_cap_info[5] = 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 643 IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 644 .phy_cap_info[0] = 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 645 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G | 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 646 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G | 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 647 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 648 .phy_cap_info[1] = 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 649 IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 650 .phy_cap_info[2] = 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 651 IEEE80211_HE_PHY_CAP2_NDP_4x_LTF_AND_3_2US, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 652 .phy_cap_info[3] = 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 653 IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_NO_DCM | 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 654 IEEE80211_HE_PHY_CAP3_DCM_MAX_TX_NSS_1 | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 655 IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_NO_DCM | 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 656 IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_1, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 657 .phy_cap_info[4] = 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 658 IEEE80211_HE_PHY_CAP4_SU_BEAMFORMEE | 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 659 IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_8 | 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 660 IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_8, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 661 .phy_cap_info[5] = 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 662 IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_2 | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 663 IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_2, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 664 .phy_cap_info[6] = 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 665 IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 666 .phy_cap_info[7] = 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 667 IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI | 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 668 IEEE80211_HE_PHY_CAP7_MAX_NC_1, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 669 .phy_cap_info[8] = 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 670 IEEE80211_HE_PHY_CAP8_HE_ER_SU_PPDU_4XLTF_AND_08_US_GI | 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 671 IEEE80211_HE_PHY_CAP8_20MHZ_IN_40MHZ_HE_PPDU_IN_2G | 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 672 IEEE80211_HE_PHY_CAP8_20MHZ_IN_160MHZ_HE_PPDU | 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 673 IEEE80211_HE_PHY_CAP8_80MHZ_IN_160MHZ_HE_PPDU | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 674 IEEE80211_HE_PHY_CAP8_DCM_MAX_RU_2x996, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 675 .phy_cap_info[9] = 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 676 IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_COMP_SIGB | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 677 IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_NON_COMP_SIGB | 77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman 2019-02-06 678 IEEE80211_HE_PHY_CAP9_NOMIMAL_PKT_PADDING_RESERVED, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 679 }, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 680 /* 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 681 * Set default Tx/Rx HE MCS NSS Support field. 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 682 * Indicate support for up to 2 spatial streams and all 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 683 * MCS, without any special cases 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 684 */ 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 685 .he_mcs_nss_supp = { 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 686 .rx_mcs_80 = cpu_to_le16(0xfffa), 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 687 .tx_mcs_80 = cpu_to_le16(0xfffa), 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 688 .rx_mcs_160 = cpu_to_le16(0xfffa), 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 689 .tx_mcs_160 = cpu_to_le16(0xfffa), 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 690 .rx_mcs_80p80 = cpu_to_le16(0xffff), 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 691 .tx_mcs_80p80 = cpu_to_le16(0xffff), 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 692 }, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 693 /* 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 694 * Set default PPE thresholds, with PPET16 set to 0, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 695 * PPET8 set to 7 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 696 */ 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 697 .ppe_thres = {0x61, 0x1c, 0xc7, 0x71}, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 698 }, 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 699 }, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 700 }; 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 701 eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 702 static void iwl_init_he_6ghz_capa(struct iwl_trans *trans, eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 703 struct iwl_nvm_data *data, eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 704 struct ieee80211_supported_band *sband, eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 705 u8 tx_chains, u8 rx_chains) eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 706 { eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 707 struct ieee80211_sta_ht_cap ht_cap; eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 708 struct ieee80211_sta_vht_cap vht_cap = {}; eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 709 struct ieee80211_sband_iftype_data *iftype_data; eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 710 u16 he_6ghz_capa = 0; eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 711 u32 exp; eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 712 int i; eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 713 eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 714 if (sband->band != NL80211_BAND_6GHZ) eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 715 return; eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 716 eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 717 /* grab HT/VHT capabilities and calculate HE 6 GHz capabilities */ eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 718 iwl_init_ht_hw_capab(trans, data, &ht_cap, NL80211_BAND_5GHZ, eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 719 tx_chains, rx_chains); eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 720 WARN_ON(!ht_cap.ht_supported); eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 721 iwl_init_vht_hw_capab(trans, data, &vht_cap, tx_chains, rx_chains); eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 722 WARN_ON(!vht_cap.vht_supported); eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 723 eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 724 he_6ghz_capa |= eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 725 u16_encode_bits(ht_cap.ampdu_density, eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 726 IEEE80211_HE_6GHZ_CAP_MIN_MPDU_START); eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 727 exp = u32_get_bits(vht_cap.cap, eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 728 IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK); eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 729 he_6ghz_capa |= eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 730 u16_encode_bits(exp, IEEE80211_HE_6GHZ_CAP_MAX_AMPDU_LEN_EXP); eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 731 exp = u32_get_bits(vht_cap.cap, IEEE80211_VHT_CAP_MAX_MPDU_MASK); eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 732 he_6ghz_capa |= eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 733 u16_encode_bits(exp, IEEE80211_HE_6GHZ_CAP_MAX_MPDU_LEN); eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 734 /* we don't support extended_ht_cap_info anywhere, so no RD_RESPONDER */ eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 735 if (vht_cap.cap & IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN) eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 736 he_6ghz_capa |= IEEE80211_HE_6GHZ_CAP_TX_ANTPAT_CONS; eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 737 if (vht_cap.cap & IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN) eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 738 he_6ghz_capa |= IEEE80211_HE_6GHZ_CAP_RX_ANTPAT_CONS; eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 739 eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 740 IWL_DEBUG_EEPROM(trans->dev, "he_6ghz_capa=0x%x\n", he_6ghz_capa); eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 741 eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 742 /* we know it's writable - we set it before ourselves */ eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 743 iftype_data = (void *)sband->iftype_data; eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 744 for (i = 0; i < sband->n_iftype_data; i++) eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 745 iftype_data[i].he_6ghz_capa.capa = cpu_to_le16(he_6ghz_capa); eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 746 } eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 747 df658908566455 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2019-11-05 748 static void iwl_init_he_hw_capab(struct iwl_trans *trans, df658908566455 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2019-11-05 749 struct iwl_nvm_data *data, df658908566455 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2019-11-05 750 struct ieee80211_supported_band *sband, 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 751 u8 tx_chains, u8 rx_chains) 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 752 { d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 753 struct ieee80211_sband_iftype_data *iftype_data; d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 754 d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 755 /* should only initialize once */ d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 756 if (WARN_ON(sband->iftype_data)) d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 757 return; d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 758 d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 @759 BUILD_BUG_ON(sizeof(data->iftd.low) != sizeof(iwl_he_capa)); d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 760 BUILD_BUG_ON(sizeof(data->iftd.high) != sizeof(iwl_he_capa)); d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 761 d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 762 switch (sband->band) { d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 763 case NL80211_BAND_2GHZ: d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 764 iftype_data = data->iftd.low; d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 765 break; d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 766 case NL80211_BAND_5GHZ: eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 767 case NL80211_BAND_6GHZ: d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 768 iftype_data = data->iftd.high; d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 769 break; d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 770 default: d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 771 WARN_ON(1); d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 772 return; d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 773 } d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 774 d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 775 memcpy(iftype_data, iwl_he_capa, sizeof(iwl_he_capa)); d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 776 d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 777 sband->iftype_data = iftype_data; 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 778 sband->n_iftype_data = ARRAY_SIZE(iwl_he_capa); 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 779 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 780 /* If not 2x2, we need to indicate 1x1 in the Midamble RX Max NSTS */ 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 781 if ((tx_chains & rx_chains) != ANT_AB) { 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 782 int i; 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 783 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 784 for (i = 0; i < sband->n_iftype_data; i++) { d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 785 iftype_data[i].he_cap.he_cap_elem.phy_cap_info[1] &= add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 786 ~IEEE80211_HE_PHY_CAP1_MIDAMBLE_RX_TX_MAX_NSTS; d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 787 iftype_data[i].he_cap.he_cap_elem.phy_cap_info[2] &= add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 788 ~IEEE80211_HE_PHY_CAP2_MIDAMBLE_RX_TX_MAX_NSTS; d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg 2020-12-09 789 iftype_data[i].he_cap.he_cap_elem.phy_cap_info[7] &= add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-09-05 790 ~IEEE80211_HE_PHY_CAP7_MAX_NC_MASK; 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 791 } 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 792 } eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2020-12-10 793 iwl_init_he_6ghz_capa(trans, data, sband, tx_chains, rx_chains); 57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz 2018-08-20 794 } 514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho 2018-06-24 795 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip