aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/broadcom-wl
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2013-11-11 22:00:39 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2013-11-11 22:00:39 +0000
commitaa6a5baf88a861aef7d3a0ac20a6528180dfd9f3 (patch)
treefb17c3f61273fc2dfd73cfdffd5a5c3d7c3c8feb /package/kernel/broadcom-wl
parentd1c55bb33e14b3ee351035f542977bf26232cba9 (diff)
downloadupstream-aa6a5baf88a861aef7d3a0ac20a6528180dfd9f3.tar.gz
upstream-aa6a5baf88a861aef7d3a0ac20a6528180dfd9f3.tar.bz2
upstream-aa6a5baf88a861aef7d3a0ac20a6528180dfd9f3.zip
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
Diffstat (limited to 'package/kernel/broadcom-wl')
-rw-r--r--package/kernel/broadcom-wl/files/lib/wifi/broadcom.sh42
1 files 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 191092af38..7721b87191 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}