summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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))