broadcom-wl: implement "hwmode" uci option, supports 11b (B only), 11g (G only),...
[openwrt/openwrt.git] / package / broadcom-wl / files / lib / wifi / broadcom.sh
index c444ce8fd58fa4276ff6dfadae6936857b49905a..5350df44d4d48eb25dfe59759c18121324bfaf07 100644 (file)
@@ -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}