broadcom-wl: simplify processing of 'hwmode'

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 <nlhintz@hotmail.com>

SVN-Revision: 38754
This commit is contained in:
Hauke Mehrtens 2013-11-11 22:00:39 +00:00
parent d1c55bb33e
commit aa6a5baf88

View file

@ -165,32 +165,34 @@ enable_broadcom() {
;; ;;
esac esac
[ ${channel:-0} -ge 1 -a ${channel:-0} -le 14 ] && band=2 local gmode=2 nmode=0 nreqd=
[ ${channel:-0} -ge 36 ] && band=1 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 case "$hwmode" in
*na) nmode=1; nreqd=0;; n|11n) nmode=1; nreqd=1;;
*a) nmode=0;; *n*) nmode=1; nreqd=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
;;
esac esac
# Use 'nmode' for N-Phy only # 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) # 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 case "$htmode" in
HT40-) chanspec=$(printf 0x%x%x%02x $band 0xe $(($channel - 2))); channel=;; HT40-) chanspec=$(printf 0x%x%x%02x $band 0xe $(($channel - 2))); channel=;;
HT40+) chanspec=$(printf 0x%x%x%02x $band 0xd $(($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 wlc ifname "$device" stdin <<EOF
$ifdown $ifdown
${nmode:+band ${band:-0}} band ${band:-0}
${nmode:+nmode $nmode} ${nmode:+nmode $nmode}
${nmode:+${nreqd:+nreqd $nreqd}} ${nmode:+${nreqd:+nreqd $nreqd}}
${gmode:+gmode $gmode} ${gmode:+gmode $gmode}