madwifi: if a txpower value below the poweroffset is requested, set the internal...
[openwrt/openwrt.git] / package / madwifi / patches / 438-poweroffset_sysctl.patch
index 2a6d27cc5dd23ed75036609c354edc08fb0446ad..662f2b09d24f85f4840d1639e2615f15a43ced7a 100644 (file)
@@ -1,5 +1,21 @@
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
+@@ -10474,11 +10474,11 @@ set_node_txpower(void *arg, struct ieee8
+  * XXX: this function needs some locking to avoid being called 
+  * twice/interrupted. Returns the value actually stored. */
+ static u_int32_t
+-ath_set_clamped_maxtxpower(struct ath_softc *sc, 
+-              u_int32_t new_clamped_maxtxpower)
++ath_set_clamped_maxtxpower(struct ath_softc *sc, u_int32_t new_txpwr)
+ {
+-      new_clamped_maxtxpower -= sc->sc_poweroffset;
+-      (void)ath_hal_settxpowlimit(sc->sc_ah, new_clamped_maxtxpower);
++      new_txpwr = ((new_txpwr < sc->sc_poweroffset) ? 0 :
++              new_txpwr - sc->sc_poweroffset);
++      (void)ath_hal_settxpowlimit(sc->sc_ah, new_txpwr);
+       return ath_get_clamped_maxtxpower(sc);
+ }
 @@ -11029,6 +11029,7 @@ enum {
        ATH_DEBUG,
        ATH_TXANTENNA,