summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2007-09-17 05:16:38 +0000
committersam <sam@FreeBSD.org>2007-09-17 05:16:38 +0000
commit74666fdfce0e06484d5f82e8fced0c16c06477d1 (patch)
treeeb5408d03cb1fc35092ac80442ddcaa4704da9d5 /sys
parent0874cc7a2f96eabcf52d71bbfa4a745f6e6098e6 (diff)
downloadFreeBSD-src-74666fdfce0e06484d5f82e8fced0c16c06477d1.zip
FreeBSD-src-74666fdfce0e06484d5f82e8fced0c16c06477d1.tar.gz
bandaid Dynamic Turbo A operation with old hal's: HAL_MODE_108A
does not have a rate table in older hal's so if we scan such a channel the driver will hit an assertion or crash; for old hal's fallback to using the static turbo rate table for this mode (not correct but good enough for now given none of the rate control algorithms understand how to switch between base+boost) Approved by: re (blanket wireless)
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ath/if_ath.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index 1f3fc485..5654563 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -5605,6 +5605,10 @@ ath_rate_setup(struct ath_softc *sc, u_int mode)
break;
case IEEE80211_MODE_TURBO_A:
rt = ath_hal_getratetable(ah, HAL_MODE_108A);
+#if HAL_ABI_VERSION < 0x07013100
+ if (rt == NULL) /* XXX bandaid for old hal's */
+ rt = ath_hal_getratetable(ah, HAL_MODE_TURBO);
+#endif
break;
case IEEE80211_MODE_TURBO_G:
rt = ath_hal_getratetable(ah, HAL_MODE_108G);
OpenPOWER on IntegriCloud