diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2010-04-07 21:33:05 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2010-04-07 21:33:05 +0000 |
commit | d240d8edad7c2fdcf13673ab7b7d10819d82eabc (patch) | |
tree | 78da61537f52975a82e0a681682a584e4b63e701 | |
parent | 843ac4a11abe1b2458512d3a7146d41b339d5eb0 (diff) | |
download | master-31e0f0ae-d240d8edad7c2fdcf13673ab7b7d10819d82eabc.tar.gz master-31e0f0ae-d240d8edad7c2fdcf13673ab7b7d10819d82eabc.tar.bz2 master-31e0f0ae-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.sh | 9 | ||||
-rw-r--r-- | package/broadcom-wl/src/wlc/wlc.c | 7 |
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)) |