Преглед изворни кода

broadcom-wl: align with mac80211 config

 - Support HT40 instead of HT40+/HT40- like mac80211
 - Enable 11n if htmode is HT20 or HT40

Signed-off-by: Jo-Philipp Wich <[email protected]>

SVN-Revision: 43063
Jo-Philipp Wich пре 11 година
родитељ
комит
aeecc6ec12

+ 2 - 2
package/kernel/broadcom-wl/Makefile

@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2012 OpenWrt.org
+# Copyright (C) 2006-2014 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=broadcom-wl
 PKG_VERSION:=5.10.56.27.3
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(ARCH).tar.bz2
 PKG_SOURCE_URL:=http://downloads.openwrt.org/sources

+ 13 - 4
package/kernel/broadcom-wl/files/lib/wifi/broadcom.sh

@@ -199,11 +199,20 @@ enable_broadcom() {
 	}
 
 	# Use 'chanspec' instead of 'channel' for 'N' modes (See bcmwifi.h)
-	[ ${nmode:-0} -ne 0 -a -n "$band" -a -n "$channel" ] && {
+	[ -n "$nmode" -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=;;
-			HT20)	chanspec=$(printf 0x%x%x%02x $band 0xb $channel); channel=;;
+			HT40)
+				if [ -n "$gmode" ]; then
+					[ $channel -lt 7 ] && htmode="HT40+" || htmode="HT40-"
+				else
+					[ $(( ($channel / 4) % 2 )) -eq 1 ] && htmode="HT40+" || htmode="HT40-"
+				fi
+			;;
+		esac
+		case "$htmode" in
+			HT40-)	chanspec=$(printf 0x%x%x%02x $band 0xe $(($channel - 2))); nmode=1; channel=;;
+			HT40+)	chanspec=$(printf 0x%x%x%02x $band 0xd $(($channel + 2))); nmode=1; channel=;;
+			HT20)	chanspec=$(printf 0x%x%x%02x $band 0xb $channel); nmode=1; channel=;;
 			*) ;;
 		esac
 	}