diff options
| author | Rafael J. Wysocki <rjw@sisk.pl> | 2012-07-11 15:23:31 -0400 |
|---|---|---|
| committer | Wolfram Sang <w.sang@pengutronix.de> | 2012-07-12 06:04:38 -0400 |
| commit | 85777ad264695b6287b958627196bd70f72ca8ae (patch) | |
| tree | ef8bfc8785097333057d3995a924b81e51a3e23f /drivers/i2c | |
| parent | f277d27cc40f77719d45d9f5abf3ae4e9bdb172f (diff) | |
i2c-bfin-twi: Use struct dev_pm_ops for power management
Make the Blackfin On-Chip Two Wire Interface driver define its PM
callbacks through a struct dev_pm_ops object rather than by using
legacy PM hooks in struct platform_driver.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Diffstat (limited to 'drivers/i2c')
| -rw-r--r-- | drivers/i2c/busses/i2c-bfin-twi.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/i2c/busses/i2c-bfin-twi.c b/drivers/i2c/busses/i2c-bfin-twi.c index cdb59e5b23f7..515822429b19 100644 --- a/drivers/i2c/busses/i2c-bfin-twi.c +++ b/drivers/i2c/busses/i2c-bfin-twi.c | |||
| @@ -611,9 +611,9 @@ static struct i2c_algorithm bfin_twi_algorithm = { | |||
| 611 | .functionality = bfin_twi_functionality, | 611 | .functionality = bfin_twi_functionality, |
| 612 | }; | 612 | }; |
| 613 | 613 | ||
| 614 | static int i2c_bfin_twi_suspend(struct platform_device *pdev, pm_message_t state) | 614 | static int i2c_bfin_twi_suspend(struct device *dev) |
| 615 | { | 615 | { |
| 616 | struct bfin_twi_iface *iface = platform_get_drvdata(pdev); | 616 | struct bfin_twi_iface *iface = dev_get_drvdata(dev); |
| 617 | 617 | ||
| 618 | iface->saved_clkdiv = read_CLKDIV(iface); | 618 | iface->saved_clkdiv = read_CLKDIV(iface); |
| 619 | iface->saved_control = read_CONTROL(iface); | 619 | iface->saved_control = read_CONTROL(iface); |
| @@ -626,14 +626,14 @@ static int i2c_bfin_twi_suspend(struct platform_device *pdev, pm_message_t state | |||
| 626 | return 0; | 626 | return 0; |
| 627 | } | 627 | } |
| 628 | 628 | ||
| 629 | static int i2c_bfin_twi_resume(struct platform_device *pdev) | 629 | static int i2c_bfin_twi_resume(struct device *dev) |
| 630 | { | 630 | { |
| 631 | struct bfin_twi_iface *iface = platform_get_drvdata(pdev); | 631 | struct bfin_twi_iface *iface = dev_get_drvdata(dev); |
| 632 | 632 | ||
| 633 | int rc = request_irq(iface->irq, bfin_twi_interrupt_entry, | 633 | int rc = request_irq(iface->irq, bfin_twi_interrupt_entry, |
| 634 | 0, pdev->name, iface); | 634 | 0, to_platform_device(dev)->name, iface); |
| 635 | if (rc) { | 635 | if (rc) { |
| 636 | dev_err(&pdev->dev, "Can't get IRQ %d !\n", iface->irq); | 636 | dev_err(dev, "Can't get IRQ %d !\n", iface->irq); |
| 637 | return -ENODEV; | 637 | return -ENODEV; |
| 638 | } | 638 | } |
| 639 | 639 | ||
| @@ -646,6 +646,9 @@ static int i2c_bfin_twi_resume(struct platform_device *pdev) | |||
| 646 | return 0; | 646 | return 0; |
| 647 | } | 647 | } |
| 648 | 648 | ||
| 649 | static SIMPLE_DEV_PM_OPS(i2c_bfin_twi_pm, | ||
| 650 | i2c_bfin_twi_suspend, i2c_bfin_twi_resume); | ||
| 651 | |||
| 649 | static int i2c_bfin_twi_probe(struct platform_device *pdev) | 652 | static int i2c_bfin_twi_probe(struct platform_device *pdev) |
| 650 | { | 653 | { |
| 651 | struct bfin_twi_iface *iface; | 654 | struct bfin_twi_iface *iface; |
| @@ -770,11 +773,10 @@ static int i2c_bfin_twi_remove(struct platform_device *pdev) | |||
| 770 | static struct platform_driver i2c_bfin_twi_driver = { | 773 | static struct platform_driver i2c_bfin_twi_driver = { |
| 771 | .probe = i2c_bfin_twi_probe, | 774 | .probe = i2c_bfin_twi_probe, |
| 772 | .remove = i2c_bfin_twi_remove, | 775 | .remove = i2c_bfin_twi_remove, |
| 773 | .suspend = i2c_bfin_twi_suspend, | ||
| 774 | .resume = i2c_bfin_twi_resume, | ||
| 775 | .driver = { | 776 | .driver = { |
| 776 | .name = "i2c-bfin-twi", | 777 | .name = "i2c-bfin-twi", |
| 777 | .owner = THIS_MODULE, | 778 | .owner = THIS_MODULE, |
| 779 | .pm = &i2c_bfin_twi_pm, | ||
| 778 | }, | 780 | }, |
| 779 | }; | 781 | }; |
| 780 | 782 | ||
