summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath/if_ath.c
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2012-04-07 02:51:53 +0000
committeradrian <adrian@FreeBSD.org>2012-04-07 02:51:53 +0000
commit17c1a9e4d5f967c74c9cabe8abc58f29af44b433 (patch)
treed2f4a99c40ad824a887261c7f358fcb422feda5d /sys/dev/ath/if_ath.c
parent8e4ce17ba282f8053da77cd6821d84eff3614cba (diff)
downloadFreeBSD-src-17c1a9e4d5f967c74c9cabe8abc58f29af44b433.zip
FreeBSD-src-17c1a9e4d5f967c74c9cabe8abc58f29af44b433.tar.gz
Store away the RTS aggregate limit from the HAL.
This will be used by some upcoming code to ensure that aggregates are enforced to be a certain size. The AR5416 has a limitation on RTS protected aggregates (8KiB).
Diffstat (limited to 'sys/dev/ath/if_ath.c')
-rw-r--r--sys/dev/ath/if_ath.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index 3866ba1..9e1625b 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -732,6 +732,13 @@ ath_attach(u_int16_t devid, struct ath_softc *sc)
ic->ic_txstream = txs;
ic->ic_rxstream = rxs;
+ (void) ath_hal_getcapability(ah, HAL_CAP_RTS_AGGR_LIMIT, 1,
+ &sc->sc_rts_aggr_limit);
+ if (sc->sc_rts_aggr_limit != (64 * 1024))
+ device_printf(sc->sc_dev,
+ "[HT] RTS aggregates limited to %d KiB\n",
+ sc->sc_rts_aggr_limit / 1024);
+
device_printf(sc->sc_dev,
"[HT] %d RX streams; %d TX streams\n", rxs, txs);
}
OpenPOWER on IntegriCloud