svn commit: r184349 - head/sys/dev/ath
Sam Leffler
sam at FreeBSD.org
Mon Oct 27 10:12:41 PDT 2008
Author: sam
Date: Mon Oct 27 17:12:41 2008
New Revision: 184349
URL: http://svn.freebsd.org/changeset/base/184349
Log:
intercept IEEE80211_IOC_TXPOWER and service tx power changes immediately
Modified:
head/sys/dev/ath/if_ath.c
Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c Mon Oct 27 17:10:21 2008 (r184348)
+++ head/sys/dev/ath/if_ath.c Mon Oct 27 17:12:41 2008 (r184349)
@@ -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
More information about the svn-src-head
mailing list