aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2010-04-07 21:33:05 +0000
committerJo-Philipp Wich <jow@openwrt.org>2010-04-07 21:33:05 +0000
commitd240d8edad7c2fdcf13673ab7b7d10819d82eabc (patch)
tree78da61537f52975a82e0a681682a584e4b63e701
parent843ac4a11abe1b2458512d3a7146d41b339d5eb0 (diff)
downloadupstream-d240d8edad7c2fdcf13673ab7b7d10819d82eabc.tar.gz
upstream-d240d8edad7c2fdcf13673ab7b7d10819d82eabc.tar.bz2
upstream-d240d8edad7c2fdcf13673ab7b7d10819d82eabc.zip
broadcom-wl: implement "hwmode" uci option, supports 11b (B only), 11g (G only), 11gst (G performance) and 11bg (default)
SVN-Revision: 20740
-rw-r--r--package/broadcom-wl/files/lib/wifi/broadcom.sh9
-rw-r--r--package/broadcom-wl/src/wlc/wlc.c7
2 files changed, 16 insertions, 0 deletions
diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh
index c444ce8fd5..5350df44d4 100644
--- a/package/broadcom-wl/files/lib/wifi/broadcom.sh
+++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh
@@ -128,6 +128,7 @@ enable_broadcom() {
config_get txpower "$device" txpower
config_get frag "$device" frag
config_get rts "$device" rts
+ config_get hwmode "$device" hwmode
local vif_pre_up vif_post_up vif_do_up vif_txpower
local doth=0
local wmm=0
@@ -159,6 +160,13 @@ enable_broadcom() {
;;
esac
+ case "$hwmode" in
+ *b) hwmode=0;;
+ *g) hwmode=2;;
+ *gst) hwmode=4;;
+ *) hwmode=1;;
+ esac
+
for vif in $vifs; do
config_get vif_txpower "$vif" txpower
@@ -290,6 +298,7 @@ enable_broadcom() {
wlc ifname "$device" stdin <<EOF
$ifdown
+gmode ${hwmode:-1}
apsta $apsta
ap $ap
${mssid:+mssid $mssid}
diff --git a/package/broadcom-wl/src/wlc/wlc.c b/package/broadcom-wl/src/wlc/wlc.c
index 747b3d5bb9..5a512349f6 100644
--- a/package/broadcom-wl/src/wlc/wlc.c
+++ b/package/broadcom-wl/src/wlc/wlc.c
@@ -919,6 +919,13 @@ static const struct wlc_call wlc_calls[] = {
.handler = wlc_maclist,
.desc = "MACs of associated stations"
},
+ {
+ .name = "gmode",
+ .param = INT,
+ .data.num = ((WLC_GET_GMODE << 16) | WLC_SET_GMODE),
+ .handler = wlc_ioctl,
+ .desc = "G Mode"
+ },
};
#define wlc_calls_size (sizeof(wlc_calls) / sizeof(struct wlc_call))