Просмотр исходного кода

broadcom-wl: implement "hwmode" uci option, supports 11b (B only), 11g (G only), 11gst (G performance) and 11bg (default)

SVN-Revision: 20740
Jo-Philipp Wich 15 лет назад
Родитель
Сommit
d240d8edad
2 измененных файлов с 16 добавлено и 0 удалено
  1. 9 0
      package/broadcom-wl/files/lib/wifi/broadcom.sh
  2. 7 0
      package/broadcom-wl/src/wlc/wlc.c

+ 9 - 0
package/broadcom-wl/files/lib/wifi/broadcom.sh

@@ -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}

+ 7 - 0
package/broadcom-wl/src/wlc/wlc.c

@@ -919,6 +919,13 @@ static const struct wlc_call wlc_calls[] = {
 		.handler = wlc_maclist,
 		.desc = "MACs of associated stations"
 	},
+	{
+		.name = "gmode",
+		.param = INT,
+		.data.num = ((WLC_GET_GMODE << 16) | WLC_SET_GMODE),
+		.handler = wlc_ioctl,
+		.desc = "G Mode"
+	},
 };
 #define wlc_calls_size (sizeof(wlc_calls) / sizeof(struct wlc_call))