#!/bin/sh

#FILE: /etc/acpi/eee-wifi-on-off.sh
# main wifi toggle script (loads/unloads modules)

. /usr/share/acpi-support/key-constants

# The sequence here *is* important.
unload_modules() {
   rmmod ath_pci
   rmmod ath_rate_sample
   rmmod ath_hal
   rmmod wlan_ccmp
   rmmod wlan_tkip
   rmmod wlan_wep
   rmmod wlan_acl
   rmmod wlan_scan_sta
   rmmod wlan
}

# At least this one's straightforward.
load_modules() {
   modprobe ath_pci
}

wifi_on() {
   # Force PCI Express Hotplug to reinit
   rmmod pciehp
   sleep 1
   # pciehp_force may be unnecessary; Xandros did it.
   modprobe pciehp pciehp_force=1
   sleep 1
   # Switch on the hardware
   echo 1 >/proc/acpi/asus/wlan
   sleep 1
   load_modules
}

wifi_off() {
   unload_modules
   echo 0 >/proc/acpi/asus/wlan
}

case $1 in
   on)
      acpi_fakekey $KEY_PROG1
      wifi_on
      ;;
   off)
      acpi_fakekey $KEY_PROG2
      wifi_off
      ;;
   toggle)
      STAT=`cat /proc/acpi/asus/wlan`
      if [ "$STAT" = "1" ];
         then wifi_off;
         else wifi_on;
      fi
      ;;
esac
