madwifi: mode txpower to wifi-device section, but remain backwards compatible
authorAndy Boyett <agb@openwrt.org>
Sat, 31 Jan 2009 16:08:57 +0000 (16:08 +0000)
committerAndy Boyett <agb@openwrt.org>
Sat, 31 Jan 2009 16:08:57 +0000 (16:08 +0000)
SVN-Revision: 14307

package/madwifi/Makefile
package/madwifi/files/lib/wifi/madwifi.sh

index e6d13a936b574a323aa289888fe1f1f09ab7a8a5..943a13c215263ce6a217982c56af10ea458c40f0 100644 (file)
@@ -1,5 +1,5 @@
-# 
-# Copyright (C) 2006-2008 OpenWrt.org
+#
+# Copyright (C) 2006-2009 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -13,7 +13,7 @@ PKG_NAME:=madwifi
 
 ifneq ($(CONFIG_MADWIFI_UPSTREAM),)
   PKG_VERSION:=0.9.4
-  PKG_RELEASE:=1
+  PKG_RELEASE:=2
 
   PKG_SOURCE:=madwifi-$(PKG_VERSION).tar.gz
   PKG_SOURCE_URL:=http://downloads.sourceforge.net/madwifi/
@@ -26,7 +26,7 @@ else
 # PKG_BRANCH:=madwifi-dfs
   PKG_REV:=3314
   PKG_VERSION:=r$(PKG_REV)
-  PKG_RELEASE:=1
+  PKG_RELEASE:=2
 
   PKG_SOURCE_PROTO:=svn
   PKG_SOURCE_VERSION:=$(PKG_REV)
index 550bba7e552af968e3996f004c21f0a8ce4bee4f..52086f04bd9a5c1080b8cd1449768a488e5a7a67 100755 (executable)
@@ -78,12 +78,13 @@ enable_atheros() {
        fi
        config_get channel "$device" channel
        config_get vifs "$device" vifs
+       config_get txpower "$device" txpower
 
        [ auto = "$channel" ] && channel=0
 
        local first=1
        for vif in $vifs; do
-               local start_hostapd
+               local start_hostapd vif_txpower
                nosbeacon=
                config_get ifname "$vif" ifname
                config_get enc "$vif" encryption
@@ -299,8 +300,14 @@ enable_atheros() {
                set_wifi_up "$vif" "$ifname"
 
                # TXPower settings only work if device is up already
-               config_get txpwr "$vif" txpower
-               [ -n "$txpwr" ] && iwconfig "$ifname" txpower "${txpwr%%.*}"
+               # while atheros hardware theoretically is capable of per-vif (even per-packet) txpower
+               # adjustment it does not work with the current atheros hal/madwifi driver
+
+               config_get vif_txpower "$vif" txpower
+               # use vif_txpower (from wifi-iface) instead of txpower (from wifi-device) if
+               # the latter doesn't exist
+               txpower="${txpower:-$vif_txpower}"
+               [ -z "$txpower" ] || iwconfig "$ifname" txpower "${txpower%%.*}"
 
                case "$mode" in
                        ap)