broadcom-wl: fix led support
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 5 Jul 2014 22:55:40 +0000 (22:55 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 5 Jul 2014 22:55:40 +0000 (22:55 +0000)
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 <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41518 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/kernel/broadcom-wl/files/lib/wifi/broadcom.sh
package/kernel/broadcom-wl/src/wlc.c

index ba31518..df5072c 100644 (file)
@@ -120,6 +120,7 @@ disable_broadcom() {
 
                wlc ifname "$device" stdin <<EOF
 $ifdown
 
                wlc ifname "$device" stdin <<EOF
 $ifdown
+leddc 0xffff
 EOF
        )
        true
 EOF
        )
        true
@@ -207,6 +208,11 @@ enable_broadcom() {
                esac
        }
 
                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
        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}
 ${nmode:+nmode $nmode}
 ${nmode:+${nreqd:+nreqd $nreqd}}
 ${gmode:+gmode $gmode}
+leddc $leddc
 apsta $apsta
 ap $ap
 ${mssid:+mssid $mssid}
 apsta $apsta
 ap $ap
 ${mssid:+mssid $mssid}
index 50c40e8..db48b73 100644 (file)
@@ -999,6 +999,14 @@ static const struct wlc_call wlc_calls[] = {
                .data.str = "cap",
                .desc = "Number of VIF's supported"
        },
                .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))
 
 };
 #define wlc_calls_size (sizeof(wlc_calls) / sizeof(struct wlc_call))