diff options
| -rw-r--r-- | drivers/input/keyboard/max7359_keypad.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/input/keyboard/max7359_keypad.c b/drivers/input/keyboard/max7359_keypad.c index 9091ff5ea808..5afe35ad24d3 100644 --- a/drivers/input/keyboard/max7359_keypad.c +++ b/drivers/input/keyboard/max7359_keypad.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <linux/i2c.h> | 17 | #include <linux/i2c.h> |
| 18 | #include <linux/slab.h> | 18 | #include <linux/slab.h> |
| 19 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
| 20 | #include <linux/pm.h> | ||
| 20 | #include <linux/input.h> | 21 | #include <linux/input.h> |
| 21 | #include <linux/input/matrix_keypad.h> | 22 | #include <linux/input/matrix_keypad.h> |
| 22 | 23 | ||
| @@ -271,8 +272,10 @@ static int __devexit max7359_remove(struct i2c_client *client) | |||
| 271 | } | 272 | } |
| 272 | 273 | ||
| 273 | #ifdef CONFIG_PM | 274 | #ifdef CONFIG_PM |
| 274 | static int max7359_suspend(struct i2c_client *client, pm_message_t mesg) | 275 | static int max7359_suspend(struct device *dev) |
| 275 | { | 276 | { |
| 277 | struct i2c_client *client = to_i2c_client(dev); | ||
| 278 | |||
| 276 | max7359_fall_deepsleep(client); | 279 | max7359_fall_deepsleep(client); |
| 277 | 280 | ||
| 278 | if (device_may_wakeup(&client->dev)) | 281 | if (device_may_wakeup(&client->dev)) |
| @@ -281,8 +284,10 @@ static int max7359_suspend(struct i2c_client *client, pm_message_t mesg) | |||
| 281 | return 0; | 284 | return 0; |
| 282 | } | 285 | } |
| 283 | 286 | ||
| 284 | static int max7359_resume(struct i2c_client *client) | 287 | static int max7359_resume(struct device *dev) |
| 285 | { | 288 | { |
| 289 | struct i2c_client *client = to_i2c_client(dev); | ||
| 290 | |||
| 286 | if (device_may_wakeup(&client->dev)) | 291 | if (device_may_wakeup(&client->dev)) |
| 287 | disable_irq_wake(client->irq); | 292 | disable_irq_wake(client->irq); |
| 288 | 293 | ||
| @@ -291,11 +296,10 @@ static int max7359_resume(struct i2c_client *client) | |||
| 291 | 296 | ||
| 292 | return 0; | 297 | return 0; |
| 293 | } | 298 | } |
| 294 | #else | ||
| 295 | #define max7359_suspend NULL | ||
| 296 | #define max7359_resume NULL | ||
| 297 | #endif | 299 | #endif |
| 298 | 300 | ||
| 301 | static SIMPLE_DEV_PM_OPS(max7359_pm, max7359_suspend, max7359_resume); | ||
| 302 | |||
| 299 | static const struct i2c_device_id max7359_ids[] = { | 303 | static const struct i2c_device_id max7359_ids[] = { |
| 300 | { "max7359", 0 }, | 304 | { "max7359", 0 }, |
| 301 | { } | 305 | { } |
| @@ -305,11 +309,10 @@ MODULE_DEVICE_TABLE(i2c, max7359_ids); | |||
| 305 | static struct i2c_driver max7359_i2c_driver = { | 309 | static struct i2c_driver max7359_i2c_driver = { |
| 306 | .driver = { | 310 | .driver = { |
| 307 | .name = "max7359", | 311 | .name = "max7359", |
| 312 | .pm = &max7359_pm, | ||
| 308 | }, | 313 | }, |
| 309 | .probe = max7359_probe, | 314 | .probe = max7359_probe, |
| 310 | .remove = __devexit_p(max7359_remove), | 315 | .remove = __devexit_p(max7359_remove), |
| 311 | .suspend = max7359_suspend, | ||
| 312 | .resume = max7359_resume, | ||
| 313 | .id_table = max7359_ids, | 316 | .id_table = max7359_ids, |
| 314 | }; | 317 | }; |
| 315 | 318 | ||
