wl1251-modules: rc script: full unload on stop and LED hack
[openpandora.oe.git] / recipes / pandora-system / wl1251-modules / rc.wl1251
index 30f8818..5018c6b 100755 (executable)
@@ -1,5 +1,4 @@
 #!/bin/sh
-
 DESC="WL1251 MAC80211 Wireless LAN driver"
 NAME="wl1251"
 
@@ -7,26 +6,37 @@ d_stop() {
        if `grep -q wl1251 /proc/modules` ; then
                rmmod wl1251_sdio
                rmmod wl1251
-               rmmod board-omap3pandora-wifi
+               rmmod board-omap3pandora-wifi
        fi
 }
 
 d_start() {
-       insmod $(busybox find /lib/modules/$(uname -r) -name "board-omap3pandora-wifi.ko")
-       insmod $(busybox find /lib/modules/$(uname -r) -name "arc4.ko")
-       insmod $(busybox find /lib/modules/$(uname -r) -name "ecb.ko")
-       insmod $(busybox find /lib/modules/$(uname -r) -name "pcbc.ko")
-       insmod $(busybox find /lib/modules/$(uname -r)/updates -name "compat.ko")       
        insmod $(busybox find /lib/modules/$(uname -r)/updates -name "rfkill_backport.ko")
-       insmod $(busybox find /lib/modules/$(uname -r)/updates -name "cfg80211.ko")
+        insmod $(busybox find /lib/modules/$(uname -r)/updates -name "compat.ko")
+        insmod $(busybox find /lib/modules/$(uname -r)/updates -name "cfg80211.ko")
        insmod $(busybox find /lib/modules/$(uname -r)/updates -name "mac80211.ko")
+        insmod $(busybox find /lib/modules/$(uname -r)/updates -name "compat_firmware_class.ko")
+        insmod $(busybox find /lib/modules/$(uname -r) -name "ecb.ko")
+       insmod $(busybox find /lib/modules/$(uname -r) -name "pcbc.ko")
+        insmod $(busybox find /lib/modules/$(uname -r) -name "arc4.ko")
        insmod $(busybox find /lib/modules/$(uname -r)/updates -name "lib80211.ko")
        insmod $(busybox find /lib/modules/$(uname -r)/updates -name "lib80211_crypt_tkip.ko")
        insmod $(busybox find /lib/modules/$(uname -r)/updates -name "lib80211_crypt_wep.ko")
        insmod $(busybox find /lib/modules/$(uname -r)/updates -name "lib80211_crypt_ccmp.ko")
        insmod $(busybox find /lib/modules/$(uname -r)/updates -name "wl1251.ko")
        insmod $(busybox find /lib/modules/$(uname -r)/updates -name "wl1251_sdio.ko")
-       iwconfig wlan0 power off
+       insmod $(busybox find /lib/modules/$(uname -r) -name "board-omap3pandora-wifi.ko")
+
+       # restore phyX related LED triggers (they come from mac80211.ko)
+       sleep 0.5
+       if [ -e /sys/class/leds/ ] ; then
+               for led in /sys/class/leds/* ; do
+                       trigger=$(grep "$(basename $led)" /etc/default/leds | grep "phy" | awk '{print $2}')
+                       if [ "x$trigger" != "x" ] ; then
+                               echo "$trigger" > "$led/trigger"
+                       fi
+               done
+       fi
 }
 
 case "$1" in