git: d7df65349960 - main - iwm: add sku_cap_mimo_disable; populate sku_cap_11n_enable

From: Adrian Chadd <adrian_at_FreeBSD.org>
Date: Fri, 17 Jan 2025 16:05:30 UTC
The branch main has been updated by adrian:

URL: https://cgit.FreeBSD.org/src/commit/?id=d7df65349960c96f3982c21ee1d4eaaab2a4ca74

commit d7df65349960c96f3982c21ee1d4eaaab2a4ca74
Author:     Adrian Chadd <adrian@FreeBSD.org>
AuthorDate: 2024-12-27 03:48:55 +0000
Commit:     Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2025-01-17 16:05:13 +0000

    iwm: add sku_cap_mimo_disable; populate sku_cap_11n_enable
    
    This is a flag to be used to disable >1 antenna support, even if
    the radio supports it.
    
    Also populate sku_cap_11n_enable, which indicates HT is available.
    
    It's a no-op right now; it's one of the requirements for properly
    configuring HT support and transmit/receive antenna configurations.
    
    Obtained from:  OpenBSD (at a6e25c727a2214219715b51ba6af2221d7e0d674, 22-Oct-2021)
    Differential Revision: https://reviews.freebsd.org/D48210
    Reviewed by:    bz
---
 sys/dev/iwm/if_iwm.c    | 3 ++-
 sys/dev/iwm/if_iwmvar.h | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/sys/dev/iwm/if_iwm.c b/sys/dev/iwm/if_iwm.c
index 15ef139fd5a5..248bfd056580 100644
--- a/sys/dev/iwm/if_iwm.c
+++ b/sys/dev/iwm/if_iwm.c
@@ -2220,7 +2220,8 @@ iwm_parse_nvm_data(struct iwm_softc *sc,
 	sku = iwm_get_sku(sc, nvm_sw, phy_sku);
 	data->sku_cap_band_24GHz_enable = sku & IWM_NVM_SKU_CAP_BAND_24GHZ;
 	data->sku_cap_band_52GHz_enable = sku & IWM_NVM_SKU_CAP_BAND_52GHZ;
-	data->sku_cap_11n_enable = 0;
+	data->sku_cap_11n_enable = sku & IWM_NVM_SKU_CAP_11N_ENABLE;
+	data->sku_cap_mimo_disable = sku & IWM_NVM_SKU_CAP_MIMO_DISABLE;
 
 	data->n_hw_addrs = iwm_get_n_hw_addrs(sc, nvm_sw);
 
diff --git a/sys/dev/iwm/if_iwmvar.h b/sys/dev/iwm/if_iwmvar.h
index 63201e5b3120..f31057c07b9b 100644
--- a/sys/dev/iwm/if_iwmvar.h
+++ b/sys/dev/iwm/if_iwmvar.h
@@ -200,6 +200,7 @@ struct iwm_nvm_data {
 	int sku_cap_11n_enable;
 	int sku_cap_amt_enable;
 	int sku_cap_ipan_enable;
+	int sku_cap_mimo_disable;
 
 	uint8_t radio_cfg_type;
 	uint8_t radio_cfg_step;