瀏覽代碼

broadcom-wl: fix led support

Some devices have an nvram setting, which make broadcom-wl turn of the
led all the time. When the driver is switched on and we find such a
setting we replace it with a better value.

Signed-off-by: Hauke Mehrtens <[email protected]>

SVN-Revision: 41518
Hauke Mehrtens 11 年之前
父節點
當前提交
4ec8908669
共有 2 個文件被更改,包括 15 次插入0 次删除
  1. 7 0
      package/kernel/broadcom-wl/files/lib/wifi/broadcom.sh
  2. 8 0
      package/kernel/broadcom-wl/src/wlc.c

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

@@ -120,6 +120,7 @@ disable_broadcom() {
 
 		wlc ifname "$device" stdin <<EOF
 $ifdown
+leddc 0xffff
 EOF
 	)
 	true
@@ -207,6 +208,11 @@ enable_broadcom() {
 		esac
 	}
 
+	local leddc = $(wlc ifname "$device" leddc)
+	if [ "$leddc" -eq 0xffff ]; then
+		leddc = 0x0;
+	fi
+
 	local _c=0
 	local nas="$(which nas)"
 	local if_pre_up if_up nas_cmd
@@ -384,6 +390,7 @@ band ${band:-0}
 ${nmode:+nmode $nmode}
 ${nmode:+${nreqd:+nreqd $nreqd}}
 ${gmode:+gmode $gmode}
+leddc $leddc
 apsta $apsta
 ap $ap
 ${mssid:+mssid $mssid}

+ 8 - 0
package/kernel/broadcom-wl/src/wlc.c

@@ -999,6 +999,14 @@ static const struct wlc_call wlc_calls[] = {
 		.data.str = "cap",
 		.desc = "Number of VIF's supported"
 	},
+	{
+		.name = "leddc",
+		.param = INT,
+		.handler = wlc_iovar,
+		.data.str = "leddc",
+		.desc = "LED Duty Cycle"
+	},
+	
 };
 #define wlc_calls_size (sizeof(wlc_calls) / sizeof(struct wlc_call))