Hi, Thank you for the patch! Yet something to improve: [auto build test ERROR on kvalo-wireless-drivers-next/master] [also build test ERROR on v5.16-rc1 next-20211118] [cannot apply to kvalo-wireless-drivers/master] [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/greearb-candelatech-com/mt76-mt7915-cache-sgi-in-wcid/20211119-005421 base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master config: microblaze-buildonly-randconfig-r005-20211119 (attached as .config) compiler: microblaze-linux-gcc (GCC) 11.2.0 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 # https://github.com/0day-ci/linux/commit/c742cd1ffffaeff7ab79835466b08fd5616cdce3 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review greearb-candelatech-com/mt76-mt7915-cache-sgi-in-wcid/20211119-005421 git checkout c742cd1ffffaeff7ab79835466b08fd5616cdce3 # save the attached .config to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=microblaze SHELL=/bin/bash drivers/net/wireless/ 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/mediatek/mt76/mt7915/mac.c: In function 'mt7915_mac_write_txwi_tm': >> drivers/net/wireless/mediatek/mt76/mt7915/mac.c:778:37: error: 'struct mt76_phy' has no member named 'test' 778 | if (skb != phy->mt76->test.tx_skb) | ^~ drivers/net/wireless/mediatek/mt76/mt7915/mac.c:780:32: error: 'struct mt76_phy' has no member named 'test' 780 | td = &phy->mt76->test; | ^~ In file included from include/linux/byteorder/little_endian.h:5, from arch/microblaze/include/uapi/asm/byteorder.h:6, from include/asm-generic/bitops/le.h:7, from include/asm-generic/bitops.h:36, from ./arch/microblaze/include/generated/asm/bitops.h:1, from include/linux/bitops.h:33, from include/linux/kernel.h:12, from include/linux/skbuff.h:13, from include/linux/if_ether.h:19, from include/linux/etherdevice.h:20, from drivers/net/wireless/mediatek/mt76/mt7915/mac.c:4: >> drivers/net/wireless/mediatek/mt76/mt7915/mac.c:909:54: error: 'struct mt7915_phy' has no member named 'test' 909 | phy->test.spe_idx)); | ^~ include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__cpu_to_le32' 33 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x)) | ^ include/linux/compiler_types.h:310:9: note: in expansion of macro '__compiletime_assert' 310 | __compiletime_assert(condition, msg, prefix, suffix) | ^~~~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert' 322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ^~~~~~~~~~~~~~~~~~ include/linux/bitfield.h:49:17: note: in expansion of macro 'BUILD_BUG_ON_MSG' 49 | BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? \ | ^~~~~~~~~~~~~~~~ include/linux/bitfield.h:94:17: note: in expansion of macro '__BF_FIELD_CHECK' 94 | __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: "); \ | ^~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7915/mac.c:908:40: note: in expansion of macro 'FIELD_PREP' 908 | txwi[7] |= cpu_to_le32(FIELD_PREP(MT_TXD7_SPE_IDX, | ^~~~~~~~~~ >> drivers/net/wireless/mediatek/mt76/mt7915/mac.c:909:54: error: 'struct mt7915_phy' has no member named 'test' 909 | phy->test.spe_idx)); | ^~ include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__cpu_to_le32' 33 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x)) | ^ include/linux/compiler_types.h:310:9: note: in expansion of macro '__compiletime_assert' 310 | __compiletime_assert(condition, msg, prefix, suffix) | ^~~~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert' 322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ^~~~~~~~~~~~~~~~~~ include/linux/bitfield.h:49:17: note: in expansion of macro 'BUILD_BUG_ON_MSG' 49 | BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? \ | ^~~~~~~~~~~~~~~~ include/linux/bitfield.h:94:17: note: in expansion of macro '__BF_FIELD_CHECK' 94 | __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: "); \ | ^~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7915/mac.c:908:40: note: in expansion of macro 'FIELD_PREP' 908 | txwi[7] |= cpu_to_le32(FIELD_PREP(MT_TXD7_SPE_IDX, | ^~~~~~~~~~ >> drivers/net/wireless/mediatek/mt76/mt7915/mac.c:909:54: error: 'struct mt7915_phy' has no member named 'test' 909 | phy->test.spe_idx)); | ^~ include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__cpu_to_le32' 33 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x)) | ^ drivers/net/wireless/mediatek/mt76/mt7915/mac.c:908:40: note: in expansion of macro 'FIELD_PREP' 908 | txwi[7] |= cpu_to_le32(FIELD_PREP(MT_TXD7_SPE_IDX, | ^~~~~~~~~~ At top level: drivers/net/wireless/mediatek/mt76/mt7915/mac.c:760:1: warning: 'mt7915_mac_write_txwi_tm' defined but not used [-Wunused-function] 760 | mt7915_mac_write_txwi_tm(struct mt7915_phy *phy, struct mt76_wcid *wcid, __le32 *txwi, | ^~~~~~~~~~~~~~~~~~~~~~~~ vim +778 drivers/net/wireless/mediatek/mt76/mt7915/mac.c 5d8a83f0994134 Shayne Chen 2020-10-22 758 aadf09537c575d Shayne Chen 2020-10-22 759 static void c742cd1ffffaef Ben Greear 2021-11-18 760 mt7915_mac_write_txwi_tm(struct mt7915_phy *phy, struct mt76_wcid *wcid, __le32 *txwi, c918c74d06457e Shayne Chen 2020-12-04 761 struct sk_buff *skb) aadf09537c575d Shayne Chen 2020-10-22 762 { c742cd1ffffaef Ben Greear 2021-11-18 763 struct mt76_testmode_data *td; cc91747be98f2a Shayne Chen 2021-04-12 764 const struct ieee80211_rate *r; c742cd1ffffaef Ben Greear 2021-11-18 765 struct mt7915_sta *msta; c742cd1ffffaef Ben Greear 2021-11-18 766 u8 bw, mode, nss; c742cd1ffffaef Ben Greear 2021-11-18 767 u8 rate_idx; aadf09537c575d Shayne Chen 2020-10-22 768 u16 rateval = 0; aadf09537c575d Shayne Chen 2020-10-22 769 u32 val; cc91747be98f2a Shayne Chen 2021-04-12 770 bool cck = false; cc91747be98f2a Shayne Chen 2021-04-12 771 int band; aadf09537c575d Shayne Chen 2020-10-22 772 c742cd1ffffaef Ben Greear 2021-11-18 773 msta = container_of(wcid, struct mt7915_sta, wcid); c742cd1ffffaef Ben Greear 2021-11-18 774 c742cd1ffffaef Ben Greear 2021-11-18 775 if (msta->test.txo_active) { c742cd1ffffaef Ben Greear 2021-11-18 776 td = &msta->test; c742cd1ffffaef Ben Greear 2021-11-18 777 } else { c918c74d06457e Shayne Chen 2020-12-04 @778 if (skb != phy->mt76->test.tx_skb) aadf09537c575d Shayne Chen 2020-10-22 779 return; c742cd1ffffaef Ben Greear 2021-11-18 780 td = &phy->mt76->test; c742cd1ffffaef Ben Greear 2021-11-18 781 } c742cd1ffffaef Ben Greear 2021-11-18 782 c742cd1ffffaef Ben Greear 2021-11-18 783 nss = td->tx_rate_nss; c742cd1ffffaef Ben Greear 2021-11-18 784 rate_idx = td->tx_rate_idx; aadf09537c575d Shayne Chen 2020-10-22 785 aadf09537c575d Shayne Chen 2020-10-22 786 switch (td->tx_rate_mode) { aadf09537c575d Shayne Chen 2020-10-22 787 case MT76_TM_TX_MODE_HT: aadf09537c575d Shayne Chen 2020-10-22 788 nss = 1 + (rate_idx >> 3); aadf09537c575d Shayne Chen 2020-10-22 789 mode = MT_PHY_TYPE_HT; aadf09537c575d Shayne Chen 2020-10-22 790 break; aadf09537c575d Shayne Chen 2020-10-22 791 case MT76_TM_TX_MODE_VHT: aadf09537c575d Shayne Chen 2020-10-22 792 mode = MT_PHY_TYPE_VHT; aadf09537c575d Shayne Chen 2020-10-22 793 break; aadf09537c575d Shayne Chen 2020-10-22 794 case MT76_TM_TX_MODE_HE_SU: aadf09537c575d Shayne Chen 2020-10-22 795 mode = MT_PHY_TYPE_HE_SU; aadf09537c575d Shayne Chen 2020-10-22 796 break; aadf09537c575d Shayne Chen 2020-10-22 797 case MT76_TM_TX_MODE_HE_EXT_SU: aadf09537c575d Shayne Chen 2020-10-22 798 mode = MT_PHY_TYPE_HE_EXT_SU; aadf09537c575d Shayne Chen 2020-10-22 799 break; aadf09537c575d Shayne Chen 2020-10-22 800 case MT76_TM_TX_MODE_HE_TB: aadf09537c575d Shayne Chen 2020-10-22 801 mode = MT_PHY_TYPE_HE_TB; aadf09537c575d Shayne Chen 2020-10-22 802 break; aadf09537c575d Shayne Chen 2020-10-22 803 case MT76_TM_TX_MODE_HE_MU: aadf09537c575d Shayne Chen 2020-10-22 804 mode = MT_PHY_TYPE_HE_MU; aadf09537c575d Shayne Chen 2020-10-22 805 break; cc91747be98f2a Shayne Chen 2021-04-12 806 case MT76_TM_TX_MODE_CCK: cc91747be98f2a Shayne Chen 2021-04-12 807 cck = true; cc91747be98f2a Shayne Chen 2021-04-12 808 fallthrough; aadf09537c575d Shayne Chen 2020-10-22 809 case MT76_TM_TX_MODE_OFDM: cc91747be98f2a Shayne Chen 2021-04-12 810 band = phy->mt76->chandef.chan->band; cc91747be98f2a Shayne Chen 2021-04-12 811 if (band == NL80211_BAND_2GHZ && !cck) cc91747be98f2a Shayne Chen 2021-04-12 812 rate_idx += 4; cc91747be98f2a Shayne Chen 2021-04-12 813 cc91747be98f2a Shayne Chen 2021-04-12 814 r = &phy->mt76->hw->wiphy->bands[band]->bitrates[rate_idx]; cc91747be98f2a Shayne Chen 2021-04-12 815 val = cck ? r->hw_value_short : r->hw_value; cc91747be98f2a Shayne Chen 2021-04-12 816 cc91747be98f2a Shayne Chen 2021-04-12 817 mode = val >> 8; cc91747be98f2a Shayne Chen 2021-04-12 818 rate_idx = val & 0xff; cc91747be98f2a Shayne Chen 2021-04-12 819 break; aadf09537c575d Shayne Chen 2020-10-22 820 default: aadf09537c575d Shayne Chen 2020-10-22 821 mode = MT_PHY_TYPE_OFDM; aadf09537c575d Shayne Chen 2020-10-22 822 break; aadf09537c575d Shayne Chen 2020-10-22 823 } aadf09537c575d Shayne Chen 2020-10-22 824 c742cd1ffffaef Ben Greear 2021-11-18 825 if (msta->test.txo_active) { c742cd1ffffaef Ben Greear 2021-11-18 826 bw = td->txbw; c742cd1ffffaef Ben Greear 2021-11-18 827 } else { c918c74d06457e Shayne Chen 2020-12-04 828 switch (phy->mt76->chandef.width) { aadf09537c575d Shayne Chen 2020-10-22 829 case NL80211_CHAN_WIDTH_40: aadf09537c575d Shayne Chen 2020-10-22 830 bw = 1; aadf09537c575d Shayne Chen 2020-10-22 831 break; aadf09537c575d Shayne Chen 2020-10-22 832 case NL80211_CHAN_WIDTH_80: aadf09537c575d Shayne Chen 2020-10-22 833 bw = 2; aadf09537c575d Shayne Chen 2020-10-22 834 break; aadf09537c575d Shayne Chen 2020-10-22 835 case NL80211_CHAN_WIDTH_80P80: aadf09537c575d Shayne Chen 2020-10-22 836 case NL80211_CHAN_WIDTH_160: aadf09537c575d Shayne Chen 2020-10-22 837 bw = 3; aadf09537c575d Shayne Chen 2020-10-22 838 break; aadf09537c575d Shayne Chen 2020-10-22 839 default: aadf09537c575d Shayne Chen 2020-10-22 840 bw = 0; aadf09537c575d Shayne Chen 2020-10-22 841 break; aadf09537c575d Shayne Chen 2020-10-22 842 } c742cd1ffffaef Ben Greear 2021-11-18 843 } aadf09537c575d Shayne Chen 2020-10-22 844 aadf09537c575d Shayne Chen 2020-10-22 845 if (td->tx_rate_stbc && nss == 1) { aadf09537c575d Shayne Chen 2020-10-22 846 nss++; aadf09537c575d Shayne Chen 2020-10-22 847 rateval |= MT_TX_RATE_STBC; aadf09537c575d Shayne Chen 2020-10-22 848 } aadf09537c575d Shayne Chen 2020-10-22 849 aadf09537c575d Shayne Chen 2020-10-22 850 rateval |= FIELD_PREP(MT_TX_RATE_IDX, rate_idx) | aadf09537c575d Shayne Chen 2020-10-22 851 FIELD_PREP(MT_TX_RATE_MODE, mode) | aadf09537c575d Shayne Chen 2020-10-22 852 FIELD_PREP(MT_TX_RATE_NSS, nss - 1); aadf09537c575d Shayne Chen 2020-10-22 853 c742cd1ffffaef Ben Greear 2021-11-18 854 /* TODO: Support per-skb txpower, p.15 of txpower doc, DW2 29:24. */ aadf09537c575d Shayne Chen 2020-10-22 855 txwi[2] |= cpu_to_le32(MT_TXD2_FIX_RATE); aadf09537c575d Shayne Chen 2020-10-22 856 c742cd1ffffaef Ben Greear 2021-11-18 857 /* Looks like this sets tx attempt to exactly 1. c742cd1ffffaef Ben Greear 2021-11-18 858 * TODO: Use td->tx_xmit_count, if in txo mode. c742cd1ffffaef Ben Greear 2021-11-18 859 */ aadf09537c575d Shayne Chen 2020-10-22 860 le32p_replace_bits(&txwi[3], 1, MT_TXD3_REM_TX_COUNT); aadf09537c575d Shayne Chen 2020-10-22 861 if (td->tx_rate_mode < MT76_TM_TX_MODE_HT) aadf09537c575d Shayne Chen 2020-10-22 862 txwi[3] |= cpu_to_le32(MT_TXD3_BA_DISABLE); aadf09537c575d Shayne Chen 2020-10-22 863 c742cd1ffffaef Ben Greear 2021-11-18 864 /* TODO: Take tx_dynbw into account in txo mode. */ aadf09537c575d Shayne Chen 2020-10-22 865 val = MT_TXD6_FIXED_BW | aadf09537c575d Shayne Chen 2020-10-22 866 FIELD_PREP(MT_TXD6_BW, bw) | aadf09537c575d Shayne Chen 2020-10-22 867 FIELD_PREP(MT_TXD6_TX_RATE, rateval) | aadf09537c575d Shayne Chen 2020-10-22 868 FIELD_PREP(MT_TXD6_SGI, td->tx_rate_sgi); aadf09537c575d Shayne Chen 2020-10-22 869 aadf09537c575d Shayne Chen 2020-10-22 870 /* for HE_SU/HE_EXT_SU PPDU aadf09537c575d Shayne Chen 2020-10-22 871 * - 1x, 2x, 4x LTF + 0.8us GI aadf09537c575d Shayne Chen 2020-10-22 872 * - 2x LTF + 1.6us GI, 4x LTF + 3.2us GI aadf09537c575d Shayne Chen 2020-10-22 873 * for HE_MU PPDU aadf09537c575d Shayne Chen 2020-10-22 874 * - 2x, 4x LTF + 0.8us GI aadf09537c575d Shayne Chen 2020-10-22 875 * - 2x LTF + 1.6us GI, 4x LTF + 3.2us GI aadf09537c575d Shayne Chen 2020-10-22 876 * for HE_TB PPDU aadf09537c575d Shayne Chen 2020-10-22 877 * - 1x, 2x LTF + 1.6us GI aadf09537c575d Shayne Chen 2020-10-22 878 * - 4x LTF + 3.2us GI aadf09537c575d Shayne Chen 2020-10-22 879 */ aadf09537c575d Shayne Chen 2020-10-22 880 if (mode >= MT_PHY_TYPE_HE_SU) aadf09537c575d Shayne Chen 2020-10-22 881 val |= FIELD_PREP(MT_TXD6_HELTF, td->tx_ltf); aadf09537c575d Shayne Chen 2020-10-22 882 cc91747be98f2a Shayne Chen 2021-04-12 883 if (td->tx_rate_ldpc || (bw > 0 && mode >= MT_PHY_TYPE_HE_SU)) aadf09537c575d Shayne Chen 2020-10-22 884 val |= MT_TXD6_LDPC; aadf09537c575d Shayne Chen 2020-10-22 885 cc91747be98f2a Shayne Chen 2021-04-12 886 txwi[3] &= ~cpu_to_le32(MT_TXD3_SN_VALID); aadf09537c575d Shayne Chen 2020-10-22 887 txwi[6] |= cpu_to_le32(val); c742cd1ffffaef Ben Greear 2021-11-18 888 c742cd1ffffaef Ben Greear 2021-11-18 889 if (msta->test.txo_active) { c742cd1ffffaef Ben Greear 2021-11-18 890 /* see mt7915_tm_set_tx_frames */ c742cd1ffffaef Ben Greear 2021-11-18 891 static const u8 spe_idx_map[] = {0, 0, 1, 0, 3, 2, 4, 0, c742cd1ffffaef Ben Greear 2021-11-18 892 9, 8, 6, 10, 16, 12, 18, 0}; c742cd1ffffaef Ben Greear 2021-11-18 893 u32 spe_idx; c742cd1ffffaef Ben Greear 2021-11-18 894 c742cd1ffffaef Ben Greear 2021-11-18 895 if (td->tx_spe_idx) { c742cd1ffffaef Ben Greear 2021-11-18 896 spe_idx = td->tx_spe_idx; c742cd1ffffaef Ben Greear 2021-11-18 897 } else { c742cd1ffffaef Ben Greear 2021-11-18 898 u8 tx_ant = td->tx_antenna_mask; c742cd1ffffaef Ben Greear 2021-11-18 899 c742cd1ffffaef Ben Greear 2021-11-18 900 if (!tx_ant) { c742cd1ffffaef Ben Greear 2021-11-18 901 /* use antenna mask that matches our nss */ c742cd1ffffaef Ben Greear 2021-11-18 902 tx_ant = GENMASK(nss - 1, 0); c742cd1ffffaef Ben Greear 2021-11-18 903 } c742cd1ffffaef Ben Greear 2021-11-18 904 spe_idx = spe_idx_map[tx_ant]; c742cd1ffffaef Ben Greear 2021-11-18 905 } c742cd1ffffaef Ben Greear 2021-11-18 906 txwi[7] |= cpu_to_le32(FIELD_PREP(MT_TXD7_SPE_IDX, spe_idx)); c742cd1ffffaef Ben Greear 2021-11-18 907 } else { aadf09537c575d Shayne Chen 2020-10-22 908 txwi[7] |= cpu_to_le32(FIELD_PREP(MT_TXD7_SPE_IDX, 78fc30a21cf117 Shayne Chen 2020-12-04 @909 phy->test.spe_idx)); c742cd1ffffaef Ben Greear 2021-11-18 910 } aadf09537c575d Shayne Chen 2020-10-22 911 } aadf09537c575d Shayne Chen 2020-10-22 912 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip