[Meego-kernel] [PATCH 6/9] intel_mid_keypad: add basic power management
Kristen Carlson Accardi
kristen at linux.intel.com
Tue Feb 1 16:04:19 PST 2011
Signed-off-by: Kristen Carlson Accardi <kristen at linux.intel.com>
---
drivers/input/keyboard/intel_mid_keypad.c | 22 ++++++++++++++++++++--
1 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/drivers/input/keyboard/intel_mid_keypad.c b/drivers/input/keyboard/intel_mid_keypad.c
index 3c5b5cd..33c6300 100644
--- a/drivers/input/keyboard/intel_mid_keypad.c
+++ b/drivers/input/keyboard/intel_mid_keypad.c
@@ -426,14 +426,32 @@ static const struct pci_device_id keypad_pci_tbl[] = {
};
MODULE_DEVICE_TABLE(pci, keypad_pci_tbl);
+#ifdef CONFIG_PM
+static int mrst_keypad_suspend(struct pci_dev *pdev, pm_message_t state)
+{
+ if (device_may_wakeup(&pdev->dev))
+ enable_irq_wake(pdev->irq);
+
+ return 0;
+}
+
+static int mrst_keypad_resume(struct pci_dev *pdev)
+{
+ if (device_may_wakeup(&pdev->dev))
+ disable_irq_wake(pdev->irq);
+
+ return 0;
+}
+#endif
+
static struct pci_driver mrst_keypad_driver = {
.name = DRV_NAME,
.id_table = keypad_pci_tbl,
.probe = mrst_keypad_probe,
.remove = __devexit_p(mrst_keypad_remove),
#ifdef CONFIG_PM
- .suspend = NULL,
- .resume = NULL,
+ .suspend = mrst_keypad_suspend,
+ .resume = mrst_keypad_resume,
#endif /* CONFIG_PM */
};
--
1.7.3.1
More information about the MeeGo-kernel
mailing list