diff options
Diffstat (limited to 'drivers/staging/iio/magnetometer/hmc5843.c')
-rw-r--r-- | drivers/staging/iio/magnetometer/hmc5843.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c index f2e85a9cf19..d24992ceb2b 100644 --- a/drivers/staging/iio/magnetometer/hmc5843.c +++ b/drivers/staging/iio/magnetometer/hmc5843.c | |||
@@ -588,19 +588,26 @@ static int hmc5843_remove(struct i2c_client *client) | |||
588 | return 0; | 588 | return 0; |
589 | } | 589 | } |
590 | 590 | ||
591 | static int hmc5843_suspend(struct i2c_client *client, pm_message_t mesg) | 591 | #ifdef CONFIG_PM_SLEEP |
592 | static int hmc5843_suspend(struct device *dev) | ||
592 | { | 593 | { |
593 | hmc5843_configure(client, MODE_SLEEP); | 594 | hmc5843_configure(to_i2c_client(dev), MODE_SLEEP); |
594 | return 0; | 595 | return 0; |
595 | } | 596 | } |
596 | 597 | ||
597 | static int hmc5843_resume(struct i2c_client *client) | 598 | static int hmc5843_resume(struct device *dev) |
598 | { | 599 | { |
599 | struct hmc5843_data *data = i2c_get_clientdata(client); | 600 | struct hmc5843_data *data = i2c_get_clientdata(to_i2c_client(dev)); |
600 | hmc5843_configure(client, data->operating_mode); | 601 | hmc5843_configure(to_i2c_client(dev), data->operating_mode); |
601 | return 0; | 602 | return 0; |
602 | } | 603 | } |
603 | 604 | ||
605 | static SIMPLE_DEV_PM_OPS(hmc5843_pm_ops, hmc5843_suspend, hmc5843_resume); | ||
606 | #define HMC5843_PM_OPS (&hmc5843_pm_ops) | ||
607 | #else | ||
608 | #define HMC5843_PM_OPS NULL | ||
609 | #endif | ||
610 | |||
604 | static const struct i2c_device_id hmc5843_id[] = { | 611 | static const struct i2c_device_id hmc5843_id[] = { |
605 | { "hmc5843", 0 }, | 612 | { "hmc5843", 0 }, |
606 | { } | 613 | { } |
@@ -610,14 +617,13 @@ MODULE_DEVICE_TABLE(i2c, hmc5843_id); | |||
610 | static struct i2c_driver hmc5843_driver = { | 617 | static struct i2c_driver hmc5843_driver = { |
611 | .driver = { | 618 | .driver = { |
612 | .name = "hmc5843", | 619 | .name = "hmc5843", |
620 | .pm = HMC5843_PM_OPS, | ||
613 | }, | 621 | }, |
614 | .id_table = hmc5843_id, | 622 | .id_table = hmc5843_id, |
615 | .probe = hmc5843_probe, | 623 | .probe = hmc5843_probe, |
616 | .remove = hmc5843_remove, | 624 | .remove = hmc5843_remove, |
617 | .detect = hmc5843_detect, | 625 | .detect = hmc5843_detect, |
618 | .address_list = normal_i2c, | 626 | .address_list = normal_i2c, |
619 | .suspend = hmc5843_suspend, | ||
620 | .resume = hmc5843_resume, | ||
621 | }; | 627 | }; |
622 | module_i2c_driver(hmc5843_driver); | 628 | module_i2c_driver(hmc5843_driver); |
623 | 629 | ||