diff options
author | Felix Fietkau <nbd@openwrt.org> | 2007-07-11 21:13:50 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2007-07-11 21:13:50 +0000 |
commit | 65edd13209cfb70986a94ec017c775a3ab4eba5c (patch) | |
tree | 163829793737ecbbe9665ce93253904068362614 /package/madwifi/patches/125-tpc_PR_1435.patch | |
parent | c2e8f9c47cac1bf054a9623b1d6540f3e7fc9eeb (diff) | |
download | upstream-65edd13209cfb70986a94ec017c775a3ab4eba5c.tar.gz upstream-65edd13209cfb70986a94ec017c775a3ab4eba5c.tar.bz2 upstream-65edd13209cfb70986a94ec017c775a3ab4eba5c.zip |
sync with latest madwifi snapshot, refresh patches, add tpc fix by mdtaylor (should fix #1949)
SVN-Revision: 7929
Diffstat (limited to 'package/madwifi/patches/125-tpc_PR_1435.patch')
-rw-r--r-- | package/madwifi/patches/125-tpc_PR_1435.patch | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/package/madwifi/patches/125-tpc_PR_1435.patch b/package/madwifi/patches/125-tpc_PR_1435.patch new file mode 100644 index 0000000000..5ecb9c6550 --- /dev/null +++ b/package/madwifi/patches/125-tpc_PR_1435.patch @@ -0,0 +1,87 @@ +Index: madwifi-ng-r2568-20070710/ath/if_ath.c +=================================================================== +--- madwifi-ng-r2568-20070710.orig/ath/if_ath.c 2007-07-11 22:59:42.904293522 +0200 ++++ madwifi-ng-r2568-20070710/ath/if_ath.c 2007-07-11 22:59:44.052358947 +0200 +@@ -273,9 +273,7 @@ + static char *autocreate = NULL; + static char *ratectl = DEF_RATE_CTL; + static int rfkill = 0; +-#ifdef ATH_CAP_TPC + static int tpc = 0; +-#endif + static int countrycode = -1; + static int outdoor = -1; + static int xchanmode = -1; +@@ -533,12 +531,6 @@ + rfkill ? "on" : "off"); + ath_hal_setrfsilent(ah, rfkill); + +-#ifdef ATH_CAP_TPC +- printk(KERN_INFO "ath_pci: ath_pci: switching per-packet transmit power control %s\n", +- tpc ? "on" : "off"); +- ath_hal_settpc(ah, tpc); +-#endif +- + /* + * Setup rate tables for all potential media types. + */ +@@ -818,11 +810,18 @@ + */ + #ifdef ATH_CAP_TPC + sc->sc_hastpc = ath_hal_hastpc(ah); +- if (sc->sc_hastpc || ath_hal_hastxpowlimit(ah)) ++ if(tpc && !sc->sc_hastpc) { ++ printk(KERN_WARNING "ath_pci: WARNING: per-packet transmit power control was requested, but is not supported by the hardware.\n"); ++ tpc = 0; ++ } ++ printk(KERN_INFO "ath_pci: switching per-packet transmit power control %s\n", ++ tpc ? "on" : "off"); ++ ath_hal_settpc(ah, tpc); + #else + sc->sc_hastpc = 0; +- if (ath_hal_hastxpowlimit(ah)) ++ tpc = 0; /* TPC is always zero, when compiled without ATH_CAP_TPC */ + #endif ++ if (sc->sc_hastpc || ath_hal_hastxpowlimit(ah)) + ic->ic_caps |= IEEE80211_C_TXPMGT; + + /* +@@ -1836,7 +1835,7 @@ + ath_stop_locked(dev); + + #ifdef ATH_CAP_TPC +- /* Re-enable after suspend (?) */ ++ /* Re-enable after suspend */ + ath_hal_settpc(ah, tpc); + #endif + +@@ -8787,26 +8786,17 @@ + * Search for the VAP that needs a txpow change, if any + */ + TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { +-#ifdef ATH_CAP_TPC +- if (ic->ic_newtxpowlimit == vap->iv_bss->ni_txpower) { ++ if (!tpc || ic->ic_newtxpowlimit >= vap->iv_bss->ni_txpower) { + vap->iv_bss->ni_txpower = clamped_txpow; + ieee80211_iterate_nodes(&vap->iv_ic->ic_sta, set_node_txpower, &clamped_txpow); + } +-#else +- vap->iv_bss->ni_txpower = clamped_txpow; +- ieee80211_iterate_nodes(&vap->iv_ic->ic_sta, set_node_txpower, &clamped_txpow); +-#endif + } + + ic->ic_newtxpowlimit = sc->sc_curtxpow = clamped_txpow; + +-#ifdef ATH_CAP_TPC +- if (ic->ic_newtxpowlimit >= txpowlimit) +- ath_hal_settxpowlimit(ah, ic->ic_newtxpowlimit); +-#else +- if (ic->ic_newtxpowlimit != txpowlimit) ++ if ((tpc && ic->ic_newtxpowlimit >= txpowlimit) || ++ (ic->ic_newtxpowlimit != txpowlimit)) + ath_hal_settxpowlimit(ah, ic->ic_newtxpowlimit); +-#endif + } + + |