aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2024-12-27 03:48:55 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2025-01-17 16:05:13 +0000
commitd7df65349960c96f3982c21ee1d4eaaab2a4ca74 (patch)
tree90a17384b37bc4a23498d353e39cd305b82280d6
parent31a8b9782dc354ebd735db7036d7945f160b2527 (diff)
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
-rw-r--r--sys/dev/iwm/if_iwm.c3
-rw-r--r--sys/dev/iwm/if_iwmvar.h1
2 files changed, 3 insertions, 1 deletions
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;