Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 243065
b: refs/heads/master
c: 0773d7f
h: refs/heads/master
i:
  243063: f32147a
v: v3
  • Loading branch information
Corentin Chary authored and Matthew Garrett committed Mar 28, 2011
1 parent d56e2fa commit 9a398b3
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5c95638d115f9c6661fff254b3beb14b19f88e41
refs/heads/master: 0773d7f9f1c0ad5fb86d23ad7e4ef5bfd2f48b5e
49 changes: 49 additions & 0 deletions trunk/drivers/platform/x86/eeepc-wmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1183,10 +1183,59 @@ static int eeepc_wmi_remove(struct platform_device *device)
return 0;
}

/*
* Platform driver - hibernate/resume callbacks
*/
static int eeepc_hotk_thaw(struct device *device)
{
struct eeepc_wmi *eeepc = dev_get_drvdata(device);

if (eeepc->wlan_rfkill) {
bool wlan;

/*
* Work around bios bug - acpi _PTS turns off the wireless led
* during suspend. Normally it restores it on resume, but
* we should kick it ourselves in case hibernation is aborted.
*/
wlan = eeepc_wmi_get_devstate_simple(EEEPC_WMI_DEVID_WLAN);
eeepc_wmi_set_devstate(EEEPC_WMI_DEVID_WLAN, wlan, NULL);
}

return 0;
}

static int eeepc_hotk_restore(struct device *device)
{
struct eeepc_wmi *eeepc = dev_get_drvdata(device);
int bl;

/* Refresh both wlan rfkill state and pci hotplug */
if (eeepc->wlan_rfkill)
eeepc_rfkill_hotplug(eeepc);

if (eeepc->bluetooth_rfkill) {
bl = !eeepc_wmi_get_devstate_simple(EEEPC_WMI_DEVID_BLUETOOTH);
rfkill_set_sw_state(eeepc->bluetooth_rfkill, bl);
}
if (eeepc->wwan3g_rfkill) {
bl = !eeepc_wmi_get_devstate_simple(EEEPC_WMI_DEVID_WWAN3G);
rfkill_set_sw_state(eeepc->wwan3g_rfkill, bl);
}

return 0;
}

static const struct dev_pm_ops eeepc_pm_ops = {
.thaw = eeepc_hotk_thaw,
.restore = eeepc_hotk_restore,
};

static struct platform_driver platform_driver = {
.driver = {
.name = EEEPC_WMI_FILE,
.owner = THIS_MODULE,
.pm = &eeepc_pm_ops,
},
};

Expand Down

0 comments on commit 9a398b3

Please sign in to comment.