diff options
author | Corentin Chary <corentincj@iksaif.net> | 2009-08-28 08:56:41 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-08-28 15:21:12 -0400 |
commit | d1ec9c3d434d94e3674bcf433e8e8e7462b8e1c0 (patch) | |
tree | 7dbdc81e3a1f84c7b22d797c6d3b9bc5cce99ce7 /drivers/platform | |
parent | c200da5d2900df9c24fb8041870d92a4175bbef3 (diff) |
eeepc-laptop: add rfkill support for the Wimax in ASUS Eee PC 1000HG
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/platform')
-rw-r--r-- | drivers/platform/x86/eeepc-laptop.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c index 1c948604af94..c9febf4b1faa 100644 --- a/drivers/platform/x86/eeepc-laptop.c +++ b/drivers/platform/x86/eeepc-laptop.c | |||
@@ -142,6 +142,7 @@ struct eeepc_hotk { | |||
142 | struct rfkill *wlan_rfkill; | 142 | struct rfkill *wlan_rfkill; |
143 | struct rfkill *bluetooth_rfkill; | 143 | struct rfkill *bluetooth_rfkill; |
144 | struct rfkill *wwan3g_rfkill; | 144 | struct rfkill *wwan3g_rfkill; |
145 | struct rfkill *wimax_rfkill; | ||
145 | struct hotplug_slot *hotplug_slot; | 146 | struct hotplug_slot *hotplug_slot; |
146 | struct mutex hotplug_lock; | 147 | struct mutex hotplug_lock; |
147 | }; | 148 | }; |
@@ -857,6 +858,9 @@ static int eeepc_hotk_restore(struct device *device) | |||
857 | if (ehotk->wwan3g_rfkill) | 858 | if (ehotk->wwan3g_rfkill) |
858 | rfkill_set_sw_state(ehotk->wwan3g_rfkill, | 859 | rfkill_set_sw_state(ehotk->wwan3g_rfkill, |
859 | get_acpi(CM_ASL_3G) != 1); | 860 | get_acpi(CM_ASL_3G) != 1); |
861 | if (ehotk->wimax_rfkill) | ||
862 | rfkill_set_sw_state(ehotk->wimax_rfkill, | ||
863 | get_acpi(CM_ASL_WIMAX) != 1); | ||
860 | 864 | ||
861 | return 0; | 865 | return 0; |
862 | } | 866 | } |
@@ -995,6 +999,8 @@ static void eeepc_rfkill_exit(void) | |||
995 | rfkill_unregister(ehotk->bluetooth_rfkill); | 999 | rfkill_unregister(ehotk->bluetooth_rfkill); |
996 | if (ehotk->wwan3g_rfkill) | 1000 | if (ehotk->wwan3g_rfkill) |
997 | rfkill_unregister(ehotk->wwan3g_rfkill); | 1001 | rfkill_unregister(ehotk->wwan3g_rfkill); |
1002 | if (ehotk->wimax_rfkill) | ||
1003 | rfkill_unregister(ehotk->wimax_rfkill); | ||
998 | } | 1004 | } |
999 | 1005 | ||
1000 | static void eeepc_input_exit(void) | 1006 | static void eeepc_input_exit(void) |
@@ -1070,6 +1076,13 @@ static int eeepc_rfkill_init(struct device *dev) | |||
1070 | if (result && result != -ENODEV) | 1076 | if (result && result != -ENODEV) |
1071 | goto exit; | 1077 | goto exit; |
1072 | 1078 | ||
1079 | result = eeepc_new_rfkill(&ehotk->wimax_rfkill, | ||
1080 | "eeepc-wimax", dev, | ||
1081 | RFKILL_TYPE_WIMAX, CM_ASL_WIMAX); | ||
1082 | |||
1083 | if (result && result != -ENODEV) | ||
1084 | goto exit; | ||
1085 | |||
1073 | result = eeepc_setup_pci_hotplug(); | 1086 | result = eeepc_setup_pci_hotplug(); |
1074 | /* | 1087 | /* |
1075 | * If we get -EBUSY then something else is handling the PCI hotplug - | 1088 | * If we get -EBUSY then something else is handling the PCI hotplug - |