diff options
author | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-04-07 21:33:05 +0000 |
---|---|---|
committer | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-04-07 21:33:05 +0000 |
commit | 1ad9516e5dc9896fbaa945f1ea00210b5a46566e (patch) | |
tree | 5eedc1d0ad537733ca93423bdb746bd09212a255 /package | |
parent | deb7ff887ecf5669e6eec4917e0a72d8ff6de431 (diff) |
[brcm-2.4] broadcom-wl: implement "hwmode" uci option, supports 11b (B only), 11g (G only), 11gst (G performance) and 11bg (default)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20740 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-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)) |