summaryrefslogtreecommitdiff
path: root/drivers/platform
diff options
context:
space:
mode:
authorCorentin Chary <corentincj@iksaif.net>2009-08-28 16:56:41 +0400
committerLen Brown <len.brown@intel.com>2009-08-28 23:21:12 +0400
commitd1ec9c3d434d94e3674bcf433e8e8e7462b8e1c0 (patch)
tree7dbdc81e3a1f84c7b22d797c6d3b9bc5cce99ce7 /drivers/platform
parentc200da5d2900df9c24fb8041870d92a4175bbef3 (diff)
downloadlinux-d1ec9c3d434d94e3674bcf433e8e8e7462b8e1c0.tar.xz
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.c13
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 {
struct rfkill *wlan_rfkill;
struct rfkill *bluetooth_rfkill;
struct rfkill *wwan3g_rfkill;
+ struct rfkill *wimax_rfkill;
struct hotplug_slot *hotplug_slot;
struct mutex hotplug_lock;
};
@@ -857,6 +858,9 @@ static int eeepc_hotk_restore(struct device *device)
if (ehotk->wwan3g_rfkill)
rfkill_set_sw_state(ehotk->wwan3g_rfkill,
get_acpi(CM_ASL_3G) != 1);
+ if (ehotk->wimax_rfkill)
+ rfkill_set_sw_state(ehotk->wimax_rfkill,
+ get_acpi(CM_ASL_WIMAX) != 1);
return 0;
}
@@ -995,6 +999,8 @@ static void eeepc_rfkill_exit(void)
rfkill_unregister(ehotk->bluetooth_rfkill);
if (ehotk->wwan3g_rfkill)
rfkill_unregister(ehotk->wwan3g_rfkill);
+ if (ehotk->wimax_rfkill)
+ rfkill_unregister(ehotk->wimax_rfkill);
}
static void eeepc_input_exit(void)
@@ -1070,6 +1076,13 @@ static int eeepc_rfkill_init(struct device *dev)
if (result && result != -ENODEV)
goto exit;
+ result = eeepc_new_rfkill(&ehotk->wimax_rfkill,
+ "eeepc-wimax", dev,
+ RFKILL_TYPE_WIMAX, CM_ASL_WIMAX);
+
+ if (result && result != -ENODEV)
+ goto exit;
+
result = eeepc_setup_pci_hotplug();
/*
* If we get -EBUSY then something else is handling the PCI hotplug -