summaryrefslogtreecommitdiffstats
path: root/package/broadcom-wl
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-04-07 21:33:05 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-04-07 21:33:05 +0000
commit1ad9516e5dc9896fbaa945f1ea00210b5a46566e (patch)
tree5eedc1d0ad537733ca93423bdb746bd09212a255 /package/broadcom-wl
parentdeb7ff887ecf5669e6eec4917e0a72d8ff6de431 (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/broadcom-wl')
-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 c444ce8fd..5350df44d 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 747b3d5bb..5a512349f 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))