aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorSam Leffler <sam@FreeBSD.org>2008-10-27 17:12:41 +0000
committerSam Leffler <sam@FreeBSD.org>2008-10-27 17:12:41 +0000
commit4b54a231440481de5c8d80072ee344f23395ae35 (patch)
treefd739093ceb74dff9228b89f3f355ed095a84ae2 /sys/dev
parentec9ee5e7273a502c694ec9647c452a6008b0f4a0 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ath/if_ath.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index 1640f2a564d4..155a368b2ff0 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -1566,7 +1566,23 @@ ath_reset(struct ifnet *ifp)
static int
ath_reset_vap(struct ieee80211vap *vap, u_long cmd)
{
- return ath_reset(vap->iv_ic->ic_ifp);
+ struct ieee80211com *ic = vap->iv_ic;
+ struct ifnet *ifp = ic->ic_ifp;
+ struct ath_softc *sc = ifp->if_softc;
+ struct ath_hal *ah = sc->sc_ah;
+
+ switch (cmd) {
+ case IEEE80211_IOC_TXPOWER:
+ /*
+ * If per-packet TPC is enabled, then we have nothing
+ * to do; otherwise we need to force the global limit.
+ * All this can happen directly; no need to reset.
+ */
+ if (!ath_hal_gettpc(ah))
+ ath_hal_settxpowlimit(ah, ic->ic_txpowlimit);
+ return 0;
+ }
+ return ath_reset(ifp);
}
static int