mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
5836e0fb5f
SVN-Revision: 16234
60 lines
1.7 KiB
Diff
60 lines
1.7 KiB
Diff
--- 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,
|
|
ATH_RXANTENNA,
|
|
+ ATH_POWEROFFSET,
|
|
ATH_DIVERSITY,
|
|
ATH_TXINTRPERIOD,
|
|
ATH_FFTXQMIN,
|
|
@@ -11309,6 +11310,9 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl
|
|
ath_debug_global = (val & ATH_DEBUG_GLOBAL);
|
|
#endif
|
|
break;
|
|
+ case ATH_POWEROFFSET:
|
|
+ sc->sc_poweroffset = val;
|
|
+ break;
|
|
case ATH_TXANTENNA:
|
|
/*
|
|
* antenna can be:
|
|
@@ -11476,6 +11480,9 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl
|
|
case ATH_DEBUG:
|
|
val = sc->sc_debug | ath_debug_global;
|
|
break;
|
|
+ case ATH_POWEROFFSET:
|
|
+ val = sc->sc_poweroffset;
|
|
+ break;
|
|
case ATH_TXANTENNA:
|
|
val = sc->sc_txantenna;
|
|
break;
|
|
@@ -11617,6 +11624,12 @@ static const ctl_table ath_sysctl_templa
|
|
},
|
|
#endif
|
|
{ .ctl_name = CTL_AUTO,
|
|
+ .procname = "poweroffset",
|
|
+ .mode = 0644,
|
|
+ .proc_handler = ath_sysctl_halparam,
|
|
+ .extra2 = (void *)ATH_POWEROFFSET,
|
|
+ },
|
|
+ { .ctl_name = CTL_AUTO,
|
|
.procname = "txantenna",
|
|
.mode = 0644,
|
|
.proc_handler = ath_sysctl_halparam,
|