summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2013-08-08 05:52:41 +0000
committeradrian <adrian@FreeBSD.org>2013-08-08 05:52:41 +0000
commit3024a234e9051e9331e2728ba554e1f28ba85d26 (patch)
tree8e62e97efdf169c3adadf38438ba41e21cf8cef4
parentaa68907edaaef774817c1bf625fa8ca0424f4e84 (diff)
downloadFreeBSD-src-3024a234e9051e9331e2728ba554e1f28ba85d26.zip
FreeBSD-src-3024a234e9051e9331e2728ba554e1f28ba85d26.tar.gz
Cap the number of streams supported to two for now.
I haven't yet reviewed the Intel driver(s) in more depth to see if there are 1x1 NICs that report they support 2 transmit/receive chains.. if so then we'll have to update this. Tested: * Intel 4965, which is a 2x2 device with 3 RX and 2 TX chains. PR: kern/181132
-rw-r--r--sys/dev/iwn/if_iwn.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/dev/iwn/if_iwn.c b/sys/dev/iwn/if_iwn.c
index faf7ec6..5b4511e 100644
--- a/sys/dev/iwn/if_iwn.c
+++ b/sys/dev/iwn/if_iwn.c
@@ -638,6 +638,20 @@ iwn_attach(device_t dev)
if (sc->sc_flags & IWN_FLAG_HAS_11N) {
ic->ic_rxstream = sc->nrxchains;
ic->ic_txstream = sc->ntxchains;
+
+ /*
+ * The NICs we currently support cap out at 2x2 support
+ * separate from the chains being used.
+ *
+ * This is a total hack to work around that until some
+ * per-device method is implemented to return the
+ * actual stream support.
+ */
+ if (ic->ic_rxstream > 2)
+ ic->ic_rxstream = 2;
+ if (ic->ic_txstream > 2)
+ ic->ic_txstream = 2;
+
ic->ic_htcaps =
IEEE80211_HTCAP_SMPS_OFF /* SMPS mode disabled */
| IEEE80211_HTCAP_SHORTGI20 /* short GI in 20MHz */
OpenPOWER on IntegriCloud