diff options
| author | Laxman Dewangan <ldewangan@nvidia.com> | 2013-04-29 16:19:23 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-29 18:28:28 -0700 | 
| commit | 3443ad095fc330ace0ef23bf965354a56298bf58 (patch) | |
| tree | 35f7457e947488d31fb41273f1bcc8b864b76135 /drivers/rtc/rtc-tegra.c | |
| parent | 38a6276e2b56921a407e718079aee79919873d72 (diff) | |
| download | olio-linux-3.10-3443ad095fc330ace0ef23bf965354a56298bf58.tar.xz olio-linux-3.10-3443ad095fc330ace0ef23bf965354a56298bf58.zip  | |
drivers/rtc/rtc-tegra.c: use struct dev_pm_ops for power management
Make the Tegra RTC controller 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: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: Thierry Reding <thierry.reding@avionic-design.de>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Cc: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/rtc/rtc-tegra.c')
| -rw-r--r-- | drivers/rtc/rtc-tegra.c | 18 | 
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/rtc/rtc-tegra.c b/drivers/rtc/rtc-tegra.c index 916802a5836..0ef028b5482 100644 --- a/drivers/rtc/rtc-tegra.c +++ b/drivers/rtc/rtc-tegra.c @@ -26,6 +26,7 @@  #include <linux/delay.h>  #include <linux/rtc.h>  #include <linux/platform_device.h> +#include <linux/pm.h>  /* set to 1 = busy every eight 32kHz clocks during copy of sec+msec to AHB */  #define TEGRA_RTC_REG_BUSY			0x004 @@ -391,10 +392,9 @@ static int __exit tegra_rtc_remove(struct platform_device *pdev)  }  #ifdef CONFIG_PM_SLEEP -static int tegra_rtc_suspend(struct platform_device *pdev, pm_message_t state) +static int tegra_rtc_suspend(struct device *dev)  { -	struct device *dev = &pdev->dev; -	struct tegra_rtc_info *info = platform_get_drvdata(pdev); +	struct tegra_rtc_info *info = dev_get_drvdata(dev);  	tegra_rtc_wait_while_busy(dev); @@ -416,10 +416,9 @@ static int tegra_rtc_suspend(struct platform_device *pdev, pm_message_t state)  	return 0;  } -static int tegra_rtc_resume(struct platform_device *pdev) +static int tegra_rtc_resume(struct device *dev)  { -	struct device *dev = &pdev->dev; -	struct tegra_rtc_info *info = platform_get_drvdata(pdev); +	struct tegra_rtc_info *info = dev_get_drvdata(dev);  	dev_vdbg(dev, "Resume (device_may_wakeup=%d)\n",  		device_may_wakeup(dev)); @@ -431,6 +430,8 @@ static int tegra_rtc_resume(struct platform_device *pdev)  }  #endif +static SIMPLE_DEV_PM_OPS(tegra_rtc_pm_ops, tegra_rtc_suspend, tegra_rtc_resume); +  static void tegra_rtc_shutdown(struct platform_device *pdev)  {  	dev_vdbg(&pdev->dev, "disabling interrupts.\n"); @@ -445,11 +446,8 @@ static struct platform_driver tegra_rtc_driver = {  		.name	= "tegra_rtc",  		.owner	= THIS_MODULE,  		.of_match_table = tegra_rtc_dt_match, +		.pm	= &tegra_rtc_pm_ops,  	}, -#ifdef CONFIG_PM_SLEEP -	.suspend	= tegra_rtc_suspend, -	.resume		= tegra_rtc_resume, -#endif  };  module_platform_driver_probe(tegra_rtc_driver, tegra_rtc_probe);  |