iwlwifi: mvm: add support for single antenna diversity
There are products which have a single chain with 2 antennas. In these products, we need to inform the FW that the device has the single antenna diversity(SAD) feature. In the future, we will read the active antenna from a BIOS configuration. Currently, we use a default configuration which means that the FW decides which antenna to use. Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
		
							parent
							
								
									fe69b7d124
								
							
						
					
					
						commit
						5952e0ec3f
					
				| @ -240,6 +240,7 @@ const struct iwl_cfg iwl_ax101_cfg_qu_hr = { | |||||||
| 	 * HT size; mac80211 would otherwise pick the HE max (256) by default. | 	 * HT size; mac80211 would otherwise pick the HE max (256) by default. | ||||||
| 	 */ | 	 */ | ||||||
| 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT, | 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT, | ||||||
|  | 	.tx_with_siso_diversity = true, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const struct iwl_cfg iwl_ax201_cfg_qu_hr = { | const struct iwl_cfg iwl_ax201_cfg_qu_hr = { | ||||||
|  | |||||||
| @ -524,6 +524,10 @@ enum iwl_fw_phy_cfg { | |||||||
| 	FW_PHY_CFG_TX_CHAIN = 0xf << FW_PHY_CFG_TX_CHAIN_POS, | 	FW_PHY_CFG_TX_CHAIN = 0xf << FW_PHY_CFG_TX_CHAIN_POS, | ||||||
| 	FW_PHY_CFG_RX_CHAIN_POS = 20, | 	FW_PHY_CFG_RX_CHAIN_POS = 20, | ||||||
| 	FW_PHY_CFG_RX_CHAIN = 0xf << FW_PHY_CFG_RX_CHAIN_POS, | 	FW_PHY_CFG_RX_CHAIN = 0xf << FW_PHY_CFG_RX_CHAIN_POS, | ||||||
|  | 	FW_PHY_CFG_CHAIN_SAD_POS = 23, | ||||||
|  | 	FW_PHY_CFG_CHAIN_SAD_ENABLED = 0x1 << FW_PHY_CFG_CHAIN_SAD_POS, | ||||||
|  | 	FW_PHY_CFG_CHAIN_SAD_ANT_A = 0x2 << FW_PHY_CFG_CHAIN_SAD_POS, | ||||||
|  | 	FW_PHY_CFG_CHAIN_SAD_ANT_B = 0x4 << FW_PHY_CFG_CHAIN_SAD_POS, | ||||||
| 	FW_PHY_CFG_SHARED_CLK = BIT(31), | 	FW_PHY_CFG_SHARED_CLK = BIT(31), | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -379,6 +379,7 @@ struct iwl_cfg_trans_params { | |||||||
|  * @ht_params: point to ht parameters |  * @ht_params: point to ht parameters | ||||||
|  * @led_mode: 0=blinking, 1=On(RF On)/Off(RF Off) |  * @led_mode: 0=blinking, 1=On(RF On)/Off(RF Off) | ||||||
|  * @rx_with_siso_diversity: 1x1 device with rx antenna diversity |  * @rx_with_siso_diversity: 1x1 device with rx antenna diversity | ||||||
|  |  * @tx_with_siso_diversity: 1x1 device with tx antenna diversity | ||||||
|  * @internal_wimax_coex: internal wifi/wimax combo device |  * @internal_wimax_coex: internal wifi/wimax combo device | ||||||
|  * @high_temp: Is this NIC is designated to be in high temperature. |  * @high_temp: Is this NIC is designated to be in high temperature. | ||||||
|  * @host_interrupt_operation_mode: device needs host interrupt operation |  * @host_interrupt_operation_mode: device needs host interrupt operation | ||||||
| @ -441,6 +442,7 @@ struct iwl_cfg { | |||||||
| 	u16 nvm_ver; | 	u16 nvm_ver; | ||||||
| 	u16 nvm_calib_ver; | 	u16 nvm_calib_ver; | ||||||
| 	u32 rx_with_siso_diversity:1, | 	u32 rx_with_siso_diversity:1, | ||||||
|  | 	    tx_with_siso_diversity:1, | ||||||
| 	    bt_shared_single_ant:1, | 	    bt_shared_single_ant:1, | ||||||
| 	    internal_wimax_coex:1, | 	    internal_wimax_coex:1, | ||||||
| 	    host_interrupt_operation_mode:1, | 	    host_interrupt_operation_mode:1, | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user