All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Juan José Arboleda" <soyjuanarbol@gmail.com>,
	linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, miriam.rachel.korenblit@intel.com,
	kvalo@kernel.org, "Juan José Arboleda" <soyjuanarbol@gmail.com>
Subject: Re: [PATCH 2/3] iwlwifi: mvm: Enclose multi-statement macro in a do while
Date: Mon, 19 Aug 2024 00:50:22 +0800	[thread overview]
Message-ID: <202408190044.FGyKKgGE-lkp@intel.com> (raw)
In-Reply-To: <959e76da152811a723415545a3cf6ab1d8e17fbc.1723963126.git.soyjuanarbol@gmail.com>

Hi Juan,

kernel test robot noticed the following build errors:

[auto build test ERROR on wireless-next/main]
[also build test ERROR on wireless/main linus/master v6.11-rc3 next-20240816]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Juan-Jos-Arboleda/iwlwifi-mvm-Improve-code-style-in-pointer-declarations/20240818-145152
base:   https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git main
patch link:    https://lore.kernel.org/r/959e76da152811a723415545a3cf6ab1d8e17fbc.1723963126.git.soyjuanarbol%40gmail.com
patch subject: [PATCH 2/3] iwlwifi: mvm: Enclose multi-statement macro in a do while
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20240819/202408190044.FGyKKgGE-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 13.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240819/202408190044.FGyKKgGE-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408190044.FGyKKgGE-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c: In function 'iwl_mvm_decode_he_phy_ru_alloc':
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1051:9: error: expected ';' before 'while'
    1051 |         while (0);
         |         ^~~~~
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1053:9: note: in expansion of macro 'CHECK_BW'
    1053 |         CHECK_BW(20);
         |         ^~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1051:9: error: expected ';' before 'while'
    1051 |         while (0);
         |         ^~~~~
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1054:9: note: in expansion of macro 'CHECK_BW'
    1054 |         CHECK_BW(40);
         |         ^~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1051:9: error: expected ';' before 'while'
    1051 |         while (0);
         |         ^~~~~
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1055:9: note: in expansion of macro 'CHECK_BW'
    1055 |         CHECK_BW(80);
         |         ^~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1051:9: error: expected ';' before 'while'
    1051 |         while (0);
         |         ^~~~~
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1056:9: note: in expansion of macro 'CHECK_BW'
    1056 |         CHECK_BW(160);
         |         ^~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1071:1: error: expected 'while' before 'static'
    1071 | static void iwl_mvm_decode_he_phy_data(struct iwl_mvm *mvm,
         | ^~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1252:13: error: invalid storage class for function 'iwl_mvm_decode_eht_ext_mu'
    1252 | static void iwl_mvm_decode_eht_ext_mu(struct iwl_mvm *mvm,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1362:13: error: invalid storage class for function 'iwl_mvm_decode_eht_ext_tb'
    1362 | static void iwl_mvm_decode_eht_ext_tb(struct iwl_mvm *mvm,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1409:13: error: invalid storage class for function 'iwl_mvm_decode_eht_ru'
    1409 | static void iwl_mvm_decode_eht_ru(struct iwl_mvm *mvm,
         |             ^~~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1478:13: error: invalid storage class for function 'iwl_mvm_decode_eht_phy_data'
    1478 | static void iwl_mvm_decode_eht_phy_data(struct iwl_mvm *mvm,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1595:13: error: invalid storage class for function 'iwl_mvm_rx_eht'
    1595 | static void iwl_mvm_rx_eht(struct iwl_mvm *mvm, struct sk_buff *skb,
         |             ^~~~~~~~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1738:13: error: invalid storage class for function 'iwl_mvm_rx_he'
    1738 | static void iwl_mvm_rx_he(struct iwl_mvm *mvm, struct sk_buff *skb,
         |             ^~~~~~~~~~~~~
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c: In function 'iwl_mvm_rx_he':
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1784:17: error: implicit declaration of function 'iwl_mvm_decode_he_phy_data'; did you mean 'iwl_mvm_decode_eht_phy_data'? [-Werror=implicit-function-declaration]
    1784 |                 iwl_mvm_decode_he_phy_data(mvm, phy_data, he, he_mu, rx_status,
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
         |                 iwl_mvm_decode_eht_phy_data
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c: In function 'iwl_mvm_decode_he_phy_ru_alloc':
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1865:13: error: invalid storage class for function 'iwl_mvm_decode_lsig'
    1865 | static void iwl_mvm_decode_lsig(struct sk_buff *skb,
         |             ^~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1901:13: error: invalid storage class for function 'iwl_mvm_rx_get_sta_block_tx'
    1901 | static void iwl_mvm_rx_get_sta_block_tx(void *data, struct ieee80211_sta *sta)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1917:13: error: invalid storage class for function 'iwl_mvm_rx_fill_status'
    1917 | static void iwl_mvm_rx_fill_status(struct iwl_mvm *mvm,
         |             ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:2561:1: error: expected declaration or statement at end of input
    2561 | }
         | ^
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:2561:1: error: expected declaration or statement at end of input
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:2561:1: error: expected declaration or statement at end of input
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:2561:1: error: expected declaration or statement at end of input
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c: At top level:
>> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:2517:6: warning: 'iwl_mvm_rx_bar_frame_release' defined but not used [-Wunused-function]
    2517 | void iwl_mvm_rx_bar_frame_release(struct iwl_mvm *mvm, struct napi_struct *napi,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:2503:6: warning: 'iwl_mvm_rx_frame_release' defined but not used [-Wunused-function]
    2503 | void iwl_mvm_rx_frame_release(struct iwl_mvm *mvm, struct napi_struct *napi,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:2370:6: warning: 'iwl_mvm_rx_monitor_no_data' defined but not used [-Wunused-function]
    2370 | void iwl_mvm_rx_monitor_no_data(struct iwl_mvm *mvm, struct napi_struct *napi,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:2038:6: warning: 'iwl_mvm_rx_mpdu_mq' defined but not used [-Wunused-function]
    2038 | void iwl_mvm_rx_mpdu_mq(struct iwl_mvm *mvm, struct napi_struct *napi,
         |      ^~~~~~~~~~~~~~~~~~
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:987:1: warning: 'iwl_mvm_decode_he_phy_ru_alloc' defined but not used [-Wunused-function]
     987 | iwl_mvm_decode_he_phy_ru_alloc(struct iwl_mvm_rx_phy_data *phy_data,
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:935:13: warning: 'iwl_mvm_decode_he_mu_ext' defined but not used [-Wunused-function]
     935 | static void iwl_mvm_decode_he_mu_ext(struct iwl_mvm *mvm,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +1051 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c

   934	
 > 935	static void iwl_mvm_decode_he_mu_ext(struct iwl_mvm *mvm,
   936					     struct iwl_mvm_rx_phy_data *phy_data,
   937					     struct ieee80211_radiotap_he_mu *he_mu)
   938	{
   939		u32 phy_data2 = le32_to_cpu(phy_data->d2);
   940		u32 phy_data3 = le32_to_cpu(phy_data->d3);
   941		u16 phy_data4 = le16_to_cpu(phy_data->d4);
   942		u32 rate_n_flags = phy_data->rate_n_flags;
   943	
   944		if (FIELD_GET(IWL_RX_PHY_DATA4_HE_MU_EXT_CH1_CRC_OK, phy_data4)) {
   945			he_mu->flags1 |=
   946				cpu_to_le16(IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_RU_KNOWN |
   947					    IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU_KNOWN);
   948	
   949			he_mu->flags1 |=
   950				le16_encode_bits(FIELD_GET(IWL_RX_PHY_DATA4_HE_MU_EXT_CH1_CTR_RU,
   951							   phy_data4),
   952						 IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU);
   953	
   954			he_mu->ru_ch1[0] = FIELD_GET(IWL_RX_PHY_DATA2_HE_MU_EXT_CH1_RU0,
   955						     phy_data2);
   956			he_mu->ru_ch1[1] = FIELD_GET(IWL_RX_PHY_DATA3_HE_MU_EXT_CH1_RU1,
   957						     phy_data3);
   958			he_mu->ru_ch1[2] = FIELD_GET(IWL_RX_PHY_DATA2_HE_MU_EXT_CH1_RU2,
   959						     phy_data2);
   960			he_mu->ru_ch1[3] = FIELD_GET(IWL_RX_PHY_DATA3_HE_MU_EXT_CH1_RU3,
   961						     phy_data3);
   962		}
   963	
   964		if (FIELD_GET(IWL_RX_PHY_DATA4_HE_MU_EXT_CH2_CRC_OK, phy_data4) &&
   965		    (rate_n_flags & RATE_MCS_CHAN_WIDTH_MSK_V1) != RATE_MCS_CHAN_WIDTH_20) {
   966			he_mu->flags1 |=
   967				cpu_to_le16(IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_RU_KNOWN |
   968					    IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_CTR_26T_RU_KNOWN);
   969	
   970			he_mu->flags2 |=
   971				le16_encode_bits(FIELD_GET(IWL_RX_PHY_DATA4_HE_MU_EXT_CH2_CTR_RU,
   972							   phy_data4),
   973						 IEEE80211_RADIOTAP_HE_MU_FLAGS2_CH2_CTR_26T_RU);
   974	
   975			he_mu->ru_ch2[0] = FIELD_GET(IWL_RX_PHY_DATA2_HE_MU_EXT_CH2_RU0,
   976						     phy_data2);
   977			he_mu->ru_ch2[1] = FIELD_GET(IWL_RX_PHY_DATA3_HE_MU_EXT_CH2_RU1,
   978						     phy_data3);
   979			he_mu->ru_ch2[2] = FIELD_GET(IWL_RX_PHY_DATA2_HE_MU_EXT_CH2_RU2,
   980						     phy_data2);
   981			he_mu->ru_ch2[3] = FIELD_GET(IWL_RX_PHY_DATA3_HE_MU_EXT_CH2_RU3,
   982						     phy_data3);
   983		}
   984	}
   985	
   986	static void
 > 987	iwl_mvm_decode_he_phy_ru_alloc(struct iwl_mvm_rx_phy_data *phy_data,
   988				       struct ieee80211_radiotap_he *he,
   989				       struct ieee80211_radiotap_he_mu *he_mu,
   990				       struct ieee80211_rx_status *rx_status)
   991	{
   992		/*
   993		 * Unfortunately, we have to leave the mac80211 data
   994		 * incorrect for the case that we receive an HE-MU
   995		 * transmission and *don't* have the HE phy data (due
   996		 * to the bits being used for TSF). This shouldn't
   997		 * happen though as management frames where we need
   998		 * the TSF/timers are not be transmitted in HE-MU.
   999		 */
  1000		u8 ru = le32_get_bits(phy_data->d1, IWL_RX_PHY_DATA1_HE_RU_ALLOC_MASK);
  1001		u32 rate_n_flags = phy_data->rate_n_flags;
  1002		u32 he_type = rate_n_flags & RATE_MCS_HE_TYPE_MSK_V1;
  1003		u8 offs = 0;
  1004	
  1005		rx_status->bw = RATE_INFO_BW_HE_RU;
  1006	
  1007		he->data1 |= cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA1_BW_RU_ALLOC_KNOWN);
  1008	
  1009		switch (ru) {
  1010		case 0 ... 36:
  1011			rx_status->he_ru = NL80211_RATE_INFO_HE_RU_ALLOC_26;
  1012			offs = ru;
  1013			break;
  1014		case 37 ... 52:
  1015			rx_status->he_ru = NL80211_RATE_INFO_HE_RU_ALLOC_52;
  1016			offs = ru - 37;
  1017			break;
  1018		case 53 ... 60:
  1019			rx_status->he_ru = NL80211_RATE_INFO_HE_RU_ALLOC_106;
  1020			offs = ru - 53;
  1021			break;
  1022		case 61 ... 64:
  1023			rx_status->he_ru = NL80211_RATE_INFO_HE_RU_ALLOC_242;
  1024			offs = ru - 61;
  1025			break;
  1026		case 65 ... 66:
  1027			rx_status->he_ru = NL80211_RATE_INFO_HE_RU_ALLOC_484;
  1028			offs = ru - 65;
  1029			break;
  1030		case 67:
  1031			rx_status->he_ru = NL80211_RATE_INFO_HE_RU_ALLOC_996;
  1032			break;
  1033		case 68:
  1034			rx_status->he_ru = NL80211_RATE_INFO_HE_RU_ALLOC_2x996;
  1035			break;
  1036		}
  1037		he->data2 |= le16_encode_bits(offs,
  1038					      IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET);
  1039		he->data2 |= cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_KNOWN |
  1040					 IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET_KNOWN);
  1041		if (phy_data->d1 & cpu_to_le32(IWL_RX_PHY_DATA1_HE_RU_ALLOC_SEC80))
  1042			he->data2 |=
  1043				cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_SEC);
  1044	
  1045	#define CHECK_BW(bw) \
  1046		do { \
  1047			BUILD_BUG_ON(IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_ ## bw ## MHZ != \
  1048				     RATE_MCS_CHAN_WIDTH_##bw >> RATE_MCS_CHAN_WIDTH_POS); \
  1049			BUILD_BUG_ON(IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_ ## bw ## MHZ != \
  1050				     RATE_MCS_CHAN_WIDTH_##bw >> RATE_MCS_CHAN_WIDTH_POS) \
> 1051		while (0);
  1052	
  1053		CHECK_BW(20);
  1054		CHECK_BW(40);
> 1055		CHECK_BW(80);
> 1056		CHECK_BW(160);
  1057	
  1058		if (he_mu)
  1059			he_mu->flags2 |=
  1060				le16_encode_bits(FIELD_GET(RATE_MCS_CHAN_WIDTH_MSK_V1,
  1061							   rate_n_flags),
  1062						 IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW);
  1063		else if (he_type == RATE_MCS_HE_TYPE_TRIG_V1)
  1064			he->data6 |=
  1065				cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_KNOWN) |
  1066				le16_encode_bits(FIELD_GET(RATE_MCS_CHAN_WIDTH_MSK_V1,
  1067							   rate_n_flags),
  1068						 IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW);
  1069	}
  1070	
> 1071	static void iwl_mvm_decode_he_phy_data(struct iwl_mvm *mvm,
  1072					       struct iwl_mvm_rx_phy_data *phy_data,
  1073					       struct ieee80211_radiotap_he *he,
  1074					       struct ieee80211_radiotap_he_mu *he_mu,
  1075					       struct ieee80211_rx_status *rx_status,
  1076					       int queue)
  1077	{
  1078		switch (phy_data->info_type) {
  1079		case IWL_RX_PHY_INFO_TYPE_NONE:
  1080		case IWL_RX_PHY_INFO_TYPE_CCK:
  1081		case IWL_RX_PHY_INFO_TYPE_OFDM_LGCY:
  1082		case IWL_RX_PHY_INFO_TYPE_HT:
  1083		case IWL_RX_PHY_INFO_TYPE_VHT_SU:
  1084		case IWL_RX_PHY_INFO_TYPE_VHT_MU:
  1085		case IWL_RX_PHY_INFO_TYPE_EHT_MU:
  1086		case IWL_RX_PHY_INFO_TYPE_EHT_TB:
  1087		case IWL_RX_PHY_INFO_TYPE_EHT_MU_EXT:
  1088		case IWL_RX_PHY_INFO_TYPE_EHT_TB_EXT:
  1089			return;
  1090		case IWL_RX_PHY_INFO_TYPE_HE_TB_EXT:
  1091			he->data1 |= cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE_KNOWN |
  1092						 IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE2_KNOWN |
  1093						 IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE3_KNOWN |
  1094						 IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE4_KNOWN);
  1095			he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d2,
  1096								    IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE1),
  1097						      IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE1);
  1098			he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d2,
  1099								    IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE2),
  1100						      IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE2);
  1101			he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d2,
  1102								    IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE3),
  1103						      IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE3);
  1104			he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d2,
  1105								    IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE4),
  1106						      IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE4);
  1107			fallthrough;
  1108		case IWL_RX_PHY_INFO_TYPE_HE_SU:
  1109		case IWL_RX_PHY_INFO_TYPE_HE_MU:
  1110		case IWL_RX_PHY_INFO_TYPE_HE_MU_EXT:
  1111		case IWL_RX_PHY_INFO_TYPE_HE_TB:
  1112			/* HE common */
  1113			he->data1 |= cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA1_LDPC_XSYMSEG_KNOWN |
  1114						 IEEE80211_RADIOTAP_HE_DATA1_DOPPLER_KNOWN |
  1115						 IEEE80211_RADIOTAP_HE_DATA1_BSS_COLOR_KNOWN);
  1116			he->data2 |= cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA2_PRE_FEC_PAD_KNOWN |
  1117						 IEEE80211_RADIOTAP_HE_DATA2_PE_DISAMBIG_KNOWN |
  1118						 IEEE80211_RADIOTAP_HE_DATA2_TXOP_KNOWN |
  1119						 IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN);
  1120			he->data3 |= le16_encode_bits(le32_get_bits(phy_data->d0,
  1121								    IWL_RX_PHY_DATA0_HE_BSS_COLOR_MASK),
  1122						      IEEE80211_RADIOTAP_HE_DATA3_BSS_COLOR);
  1123			if (phy_data->info_type != IWL_RX_PHY_INFO_TYPE_HE_TB &&
  1124			    phy_data->info_type != IWL_RX_PHY_INFO_TYPE_HE_TB_EXT) {
  1125				he->data1 |= cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA1_UL_DL_KNOWN);
  1126				he->data3 |= le16_encode_bits(le32_get_bits(phy_data->d0,
  1127								    IWL_RX_PHY_DATA0_HE_UPLINK),
  1128							      IEEE80211_RADIOTAP_HE_DATA3_UL_DL);
  1129			}
  1130			he->data3 |= le16_encode_bits(le32_get_bits(phy_data->d0,
  1131								    IWL_RX_PHY_DATA0_HE_LDPC_EXT_SYM),
  1132						      IEEE80211_RADIOTAP_HE_DATA3_LDPC_XSYMSEG);
  1133			he->data5 |= le16_encode_bits(le32_get_bits(phy_data->d0,
  1134								    IWL_RX_PHY_DATA0_HE_PRE_FEC_PAD_MASK),
  1135						      IEEE80211_RADIOTAP_HE_DATA5_PRE_FEC_PAD);
  1136			he->data5 |= le16_encode_bits(le32_get_bits(phy_data->d0,
  1137								    IWL_RX_PHY_DATA0_HE_PE_DISAMBIG),
  1138						      IEEE80211_RADIOTAP_HE_DATA5_PE_DISAMBIG);
  1139			he->data5 |= le16_encode_bits(le32_get_bits(phy_data->d1,
  1140								    IWL_RX_PHY_DATA1_HE_LTF_NUM_MASK),
  1141						      IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS);
  1142			he->data6 |= le16_encode_bits(le32_get_bits(phy_data->d0,
  1143								    IWL_RX_PHY_DATA0_HE_TXOP_DUR_MASK),
  1144						      IEEE80211_RADIOTAP_HE_DATA6_TXOP);
  1145			he->data6 |= le16_encode_bits(le32_get_bits(phy_data->d0,
  1146								    IWL_RX_PHY_DATA0_HE_DOPPLER),
  1147						      IEEE80211_RADIOTAP_HE_DATA6_DOPPLER);
  1148			break;
  1149		}
  1150	
  1151		switch (phy_data->info_type) {
  1152		case IWL_RX_PHY_INFO_TYPE_HE_MU_EXT:
  1153		case IWL_RX_PHY_INFO_TYPE_HE_MU:
  1154		case IWL_RX_PHY_INFO_TYPE_HE_SU:
  1155			he->data1 |= cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE_KNOWN);
  1156			he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d0,
  1157								    IWL_RX_PHY_DATA0_HE_SPATIAL_REUSE_MASK),
  1158						      IEEE80211_RADIOTAP_HE_DATA4_SU_MU_SPTL_REUSE);
  1159			break;
  1160		default:
  1161			/* nothing here */
  1162			break;
  1163		}
  1164	
  1165		switch (phy_data->info_type) {
  1166		case IWL_RX_PHY_INFO_TYPE_HE_MU_EXT:
  1167			he_mu->flags1 |=
  1168				le16_encode_bits(le16_get_bits(phy_data->d4,
  1169							       IWL_RX_PHY_DATA4_HE_MU_EXT_SIGB_DCM),
  1170						 IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_DCM);
  1171			he_mu->flags1 |=
  1172				le16_encode_bits(le16_get_bits(phy_data->d4,
  1173							       IWL_RX_PHY_DATA4_HE_MU_EXT_SIGB_MCS_MASK),
  1174						 IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_MCS);
  1175			he_mu->flags2 |=
  1176				le16_encode_bits(le16_get_bits(phy_data->d4,
  1177							       IWL_RX_PHY_DATA4_HE_MU_EXT_PREAMBLE_PUNC_TYPE_MASK),
  1178						 IEEE80211_RADIOTAP_HE_MU_FLAGS2_PUNC_FROM_SIG_A_BW);
  1179			iwl_mvm_decode_he_mu_ext(mvm, phy_data, he_mu);
  1180			fallthrough;
  1181		case IWL_RX_PHY_INFO_TYPE_HE_MU:
  1182			he_mu->flags2 |=
  1183				le16_encode_bits(le32_get_bits(phy_data->d1,
  1184							       IWL_RX_PHY_DATA1_HE_MU_SIBG_SYM_OR_USER_NUM_MASK),
  1185						 IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_SYMS_USERS);
  1186			he_mu->flags2 |=
  1187				le16_encode_bits(le32_get_bits(phy_data->d1,
  1188							       IWL_RX_PHY_DATA1_HE_MU_SIGB_COMPRESSION),
  1189						 IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_COMP);
  1190			fallthrough;
  1191		case IWL_RX_PHY_INFO_TYPE_HE_TB:
  1192		case IWL_RX_PHY_INFO_TYPE_HE_TB_EXT:
  1193			iwl_mvm_decode_he_phy_ru_alloc(phy_data, he, he_mu, rx_status);
  1194			break;
  1195		case IWL_RX_PHY_INFO_TYPE_HE_SU:
  1196			he->data1 |= cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA1_BEAM_CHANGE_KNOWN);
  1197			he->data3 |= le16_encode_bits(le32_get_bits(phy_data->d0,
  1198								    IWL_RX_PHY_DATA0_HE_BEAM_CHNG),
  1199						      IEEE80211_RADIOTAP_HE_DATA3_BEAM_CHANGE);
  1200			break;
  1201		default:
  1202			/* nothing */
  1203			break;
  1204		}
  1205	}
  1206	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  reply	other threads:[~2024-08-18 16:51 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-18  6:48 [PATCH 0/3] Cleanup: Formatting iwlwifi driver Juan José Arboleda
2024-08-18  6:48 ` [PATCH 1/3] iwlwifi: mvm: Improve code style in pointer declarations Juan José Arboleda
2024-08-18  6:48 ` [PATCH 2/3] iwlwifi: mvm: Enclose multi-statement macro in a do while Juan José Arboleda
2024-08-18 16:50   ` kernel test robot [this message]
2024-08-18 19:13   ` kernel test robot
2024-08-18  6:48 ` [PATCH 3/3] iwlwifi: mvm: Replace spaces for tabs in iwl_mvm_vendor_events_idx Juan José Arboleda

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=202408190044.FGyKKgGE-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kvalo@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=miriam.rachel.korenblit@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=soyjuanarbol@gmail.com \
    /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.