|
@@ -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 -
|