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-mt7...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-ne...
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/c742cd1ffffaeff7ab79835466b08fd56...
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(a)intel.com>
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@lists.01.org