Download raw body.
sys/iwx: avoid unconditional RX antenna pattern
tech@, Here the next small bit of my iwx rework. I follow iwlwifi and advertise RX antenna pattern only when RX is effectively 1x1: there is one usable RX antenna, or MIMO is disabled. OK? Index: sys/dev/pci/if_iwx.c =================================================================== RCS file: /home/cvs/src/sys/dev/pci/if_iwx.c,v diff -u -p -r1.227 if_iwx.c --- sys/dev/pci/if_iwx.c 1 Apr 2026 02:29:37 -0000 1.227 +++ sys/dev/pci/if_iwx.c 1 Apr 2026 21:55:11 -0000 @@ -3265,6 +3265,15 @@ iwx_setup_vht_rates(struct iwx_softc *sc struct ieee80211com *ic = &sc->sc_ic; uint8_t rx_ant = iwx_fw_valid_rx_ant(sc); int n; + int num_rx_ant; + + num_rx_ant = !!(rx_ant & IWX_ANT_A) + !!(rx_ant & IWX_ANT_B) + + !!(rx_ant & IWX_ANT_C); + + ic->ic_vhtcaps &= ~IEEE80211_VHTCAP_RX_ANT_PATTERN; + + if (sc->sc_nvm.sku_cap_mimo_disable || num_rx_ant == 1) + ic->ic_vhtcaps |= IEEE80211_VHTCAP_RX_ANT_PATTERN; ic->ic_vht_rxmcs = (IEEE80211_VHT_MCS_0_9 << IEEE80211_VHT_MCS_FOR_SS_SHIFT(1)); @@ -12475,7 +12484,7 @@ iwx_attach(struct device *parent, struct (IEEE80211_VHTCAP_CHAN_WIDTH_160 << IEEE80211_VHTCAP_CHAN_WIDTH_SHIFT) | IEEE80211_VHTCAP_SGI80 | IEEE80211_VHTCAP_SGI160 | - IEEE80211_VHTCAP_RX_ANT_PATTERN | IEEE80211_VHTCAP_TX_ANT_PATTERN; + IEEE80211_VHTCAP_TX_ANT_PATTERN; ic->ic_sup_rates[IEEE80211_MODE_11A] = ieee80211_std_rateset_11a; ic->ic_sup_rates[IEEE80211_MODE_11B] = ieee80211_std_rateset_11b;
sys/iwx: avoid unconditional RX antenna pattern