diff options
| author | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
| commit | 1ac731c529cd4d6adbce134754b51ff7d822b145 (patch) | |
| tree | 143ab3f35ca5f3b69f583c84e6964b17139c2ec1 /drivers/net/wireless/intel/iwlwifi/fw/api/rx.h | |
| parent | 07b4c950f27bef0362dc6ad7ee713aab61d58149 (diff) | |
| parent | 54116d442e001e1b6bd482122043b1870998a1f3 (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.6 merge window.
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/fw/api/rx.h')
| -rw-r--r-- | drivers/net/wireless/intel/iwlwifi/fw/api/rx.h | 86 | 
1 files changed, 62 insertions, 24 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/rx.h b/drivers/net/wireless/intel/iwlwifi/fw/api/rx.h index 1c4e84932058..fdd8b01f09e4 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/api/rx.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/api/rx.h @@ -367,7 +367,8 @@ enum iwl_rx_phy_eht_data1 {  	/* number of EHT-LTF symbols 0 - 1 EHT-LTF, 1 - 2 EHT-LTFs, 2 - 4 EHT-LTFs,  	 * 3 - 6 EHT-LTFs, 4 - 8 EHT-LTFs */  	IWL_RX_PHY_DATA1_EHT_SIG_LTF_NUM		= 0x000000e0, -	IWL_RX_PHY_DATA1_EHT_RU_ALLOC			= 0x0000ff00, +	IWL_RX_PHY_DATA1_EHT_B0				= 0x00000100, +	IWL_RX_PHY_DATA1_EHT_RU_B1_B7_ALLOC		= 0x0000fe00,  };  /* goes into Metadata DW 7 */ @@ -413,7 +414,7 @@ enum iwl_rx_phy_eht_data2 {  	/* OFDM_RX_VECTOR_COMMON_RU_ALLOC_0_OUT */  	IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_A1	= 0x000001ff,  	IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_A2	= 0x0003fe00, -	IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_A3	= 0x01fc0000, +	IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_B1	= 0x07fc0000,  	/* info type: EHT-TB-EXT */  	IWL_RX_PHY_DATA2_EHT_TB_EXT_TRIG_SIGA1	= 0xffffffff, @@ -423,19 +424,18 @@ enum iwl_rx_phy_eht_data2 {  enum iwl_rx_phy_eht_data3 {  	/* info type: EHT-MU-EXT */  	/* OFDM_RX_VECTOR_COMMON_RU_ALLOC_1_OUT */ -	IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_B1	= 0x000001ff, -	IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_B2	= 0x0003fe00, -	IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_B3	= 0x01fc0000, +	IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_B2	= 0x000001ff, +	IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_C1	= 0x0003fe00, +	IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_C2	= 0x07fc0000,  };  /* goes into Metadata DW 4 */  enum iwl_rx_phy_eht_data4 {  	/* info type: EHT-MU-EXT */  	/* OFDM_RX_VECTOR_COMMON_RU_ALLOC_2_OUT */ -	IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_C1	= 0x000001ff, -	IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_C2	= 0x0003fe00, -	IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_C3	= 0x01fc0000, -	IWL_RX_PHY_DATA4_EHT_MU_EXT_SIGB_MCS	= 0x18000000, +	IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_D1	= 0x000001ff, +	IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_D2	= 0x0003fe00, +	IWL_RX_PHY_DATA4_EHT_MU_EXT_SIGB_MCS	= 0x000c0000,  };  /* goes into Metadata DW 16 */ @@ -673,22 +673,31 @@ struct iwl_rx_mpdu_desc {  	 * @mac_phy_idx: MAC/PHY index  	 */  	u8 mac_phy_idx; -	/* DW4 - carries csum data only when rpa_en == 1 */ -	/** -	 * @raw_csum: raw checksum (alledgedly unreliable) -	 */ -	__le16 raw_csum; - +	/* DW4 */  	union { +		struct { +			/* carries csum data only when rpa_en == 1 */ +			/** +			 * @raw_csum: raw checksum (alledgedly unreliable) +			 */ +			__le16 raw_csum; + +			union { +				/** +				 * @l3l4_flags: &enum iwl_rx_l3l4_flags +				 */ +				__le16 l3l4_flags; + +				/** +				 * @phy_data4: depends on info type, see phy_data1 +				 */ +				__le16 phy_data4; +			}; +		};  		/** -		 * @l3l4_flags: &enum iwl_rx_l3l4_flags -		 */ -		__le16 l3l4_flags; - -		/** -		 * @phy_data4: depends on info type, see phy_data1 +		 * @phy_eht_data4: depends on info type, see phy_data1  		 */ -		__le16 phy_data4; +		__le32 phy_eht_data4;  	};  	/* DW5 */  	/** @@ -725,7 +734,7 @@ struct iwl_rx_mpdu_desc {  #define RX_NO_DATA_INFO_TYPE_RX_ERR	1  #define RX_NO_DATA_INFO_TYPE_NDP	2  #define RX_NO_DATA_INFO_TYPE_MU_UNMATCHED	3 -#define RX_NO_DATA_INFO_TYPE_HE_TB_UNMATCHED	4 +#define RX_NO_DATA_INFO_TYPE_TB_UNMATCHED	4  #define RX_NO_DATA_INFO_ERR_POS		8  #define RX_NO_DATA_INFO_ERR_MSK		(0xff << RX_NO_DATA_INFO_ERR_POS) @@ -743,6 +752,35 @@ struct iwl_rx_mpdu_desc {  #define RX_NO_DATA_RX_VEC0_VHT_NSTS_MSK	0x38000000  #define RX_NO_DATA_RX_VEC2_EHT_NSTS_MSK	0x00f00000 +/* content of OFDM_RX_VECTOR_USIG_A1_OUT */ +enum iwl_rx_usig_a1 { +	IWL_RX_USIG_A1_ENHANCED_WIFI_VER_ID	= 0x00000007, +	IWL_RX_USIG_A1_BANDWIDTH		= 0x00000038, +	IWL_RX_USIG_A1_UL_FLAG			= 0x00000040, +	IWL_RX_USIG_A1_BSS_COLOR		= 0x00001f80, +	IWL_RX_USIG_A1_TXOP_DURATION		= 0x000fe000, +	IWL_RX_USIG_A1_DISREGARD		= 0x01f00000, +	IWL_RX_USIG_A1_VALIDATE			= 0x02000000, +	IWL_RX_USIG_A1_EHT_BW320_SLOT		= 0x04000000, +	IWL_RX_USIG_A1_EHT_TYPE			= 0x18000000, +	IWL_RX_USIG_A1_RDY			= 0x80000000, +}; + +/* content of OFDM_RX_VECTOR_USIG_A2_EHT_OUT */ +enum iwl_rx_usig_a2_eht { +	IWL_RX_USIG_A2_EHT_PPDU_TYPE		= 0x00000003, +	IWL_RX_USIG_A2_EHT_USIG2_VALIDATE_B2	= 0x00000004, +	IWL_RX_USIG_A2_EHT_PUNC_CHANNEL		= 0x000000f8, +	IWL_RX_USIG_A2_EHT_USIG2_VALIDATE_B8	= 0x00000100, +	IWL_RX_USIG_A2_EHT_SIG_MCS		= 0x00000600, +	IWL_RX_USIG_A2_EHT_SIG_SYM_NUM		= 0x0000f800, +	IWL_RX_USIG_A2_EHT_TRIG_SPATIAL_REUSE_1 = 0x000f0000, +	IWL_RX_USIG_A2_EHT_TRIG_SPATIAL_REUSE_2 = 0x00f00000, +	IWL_RX_USIG_A2_EHT_TRIG_USIG2_DISREGARD	= 0x1f000000, +	IWL_RX_USIG_A2_EHT_CRC_OK		= 0x40000000, +	IWL_RX_USIG_A2_EHT_RDY			= 0x80000000, +}; +  /**   * struct iwl_rx_no_data - RX no data descriptor   * @info: 7:0 frame type, 15:8 RX error type @@ -780,7 +818,7 @@ struct iwl_rx_no_data {   * @rx_vec: DW-12:9 raw RX vectors from DSP according to modulation type.   *	for VHT: OFDM_RX_VECTOR_SIGA1_OUT, OFDM_RX_VECTOR_SIGA2_OUT   *	for HE: OFDM_RX_VECTOR_HE_SIGA1_OUT, OFDM_RX_VECTOR_HE_SIGA2_OUT - *	for EHT: OFDM_RX_VECTOR_USIG_A1_OUT, OFDM_RX_VECTOR_USIG_A2_OUT, + *	for EHT: OFDM_RX_VECTOR_USIG_A1_OUT, OFDM_RX_VECTOR_USIG_A2_EHT_OUT,   *	OFDM_RX_VECTOR_EHT_OUT, OFDM_RX_VECTOR_EHT_USER_FIELD_OUT   */  struct iwl_rx_no_data_ver_3 {  |