Default gmode to "GOnly" unless explicitly overwridden.  This corrects
processing for 11ng to specify "GOnly" for gmode instead of "Auto"
(which translated to "bg").

Signed-off-by: Nathan Hintz <nlhi...@hotmail.com>
---
 .../kernel/broadcom-wl/files/lib/wifi/broadcom.sh  | 42 +++++++++++-----------
 1 file changed, 22 insertions(+), 20 deletions(-)

diff --git a/package/kernel/broadcom-wl/files/lib/wifi/broadcom.sh 
b/package/kernel/broadcom-wl/files/lib/wifi/broadcom.sh
index ff1d750..62ff631 100644
--- a/package/kernel/broadcom-wl/files/lib/wifi/broadcom.sh
+++ b/package/kernel/broadcom-wl/files/lib/wifi/broadcom.sh
@@ -165,32 +165,34 @@ enable_broadcom() {
                ;;
        esac
 
-       [ ${channel:-0} -ge 1 -a ${channel:-0} -le 14 ] && band=2
-       [ ${channel:-0} -ge 36 ] && band=1
+       local gmode=2 nmode=0 nreqd=
+       case "$hwmode" in
+               *a)     gmode=;;
+               *b)     gmode=0;;
+               *bg)    gmode=1;;
+               *g)     gmode=2;;
+               *gst)   gmode=4;;
+               *lrs)   gmode=5;;
+               *)      nmode=1; nreqd=0;;
+       esac
 
        case "$hwmode" in
-               *na)    nmode=1; nreqd=0;;
-               *a)     nmode=0;;
-               *ng)    gmode=1; nmode=1; nreqd=0;;
-               *n)     nmode=1; nreqd=1;;
-               *b)     gmode=0; nmode=0;;
-               *bg)    gmode=1; nmode=0;;
-               *g)     gmode=2; nmode=0;;
-               *gst)   gmode=4; nmode=0;;
-               *lrs)   gmode=5; nmode=0;;
-               *)      case "$band" in
-                               2) gmode=1; nmode=1; nreqd=0;;
-                               1) nmode=1; nreqd=0;;
-                               *) gmode=1; nmode=1; nreqd=0;;
-                       esac
-                       ;;
+               n|11n)  nmode=1; nreqd=1;;
+               *n*)    nmode=1; nreqd=0;;
        esac
 
         # Use 'nmode' for N-Phy only
-       [ "$(wlc ifname $device phytype)" = 4 ] || nmode=
+       [ "$(wlc ifname "$device" phytype)" = 4 ] || nmode=
+
+       local band chanspec
+       [ ${channel:-0} -ge 1 -a ${channel:-0} -le 14 ] && band=2
+       [ ${channel:-0} -ge 36 ] && {
+               band=1
+               gmode=
+       }
 
        # Use 'chanspec' instead of 'channel' for 'N' modes (See bcmwifi.h)
-       [ ${nmode:-0} -ne 0 -a -n "$band" ] && {
+       [ ${nmode:-0} -ne 0 -a -n "$band" -a -n "$channel" ] && {
                case "$htmode" in
                        HT40-)  chanspec=$(printf 0x%x%x%02x $band 0xe 
$(($channel - 2))); channel=;;
                        HT40+)  chanspec=$(printf 0x%x%x%02x $band 0xd 
$(($channel + 2))); channel=;;
@@ -352,7 +354,7 @@ enable_broadcom() {
        wlc ifname "$device" stdin <<EOF
 $ifdown
 
-${nmode:+band ${band:-0}}
+band ${band:-0}
 ${nmode:+nmode $nmode}
 ${nmode:+${nreqd:+nreqd $nreqd}}
 ${gmode:+gmode $gmode}
-- 
1.8.3.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to