diff options
Diffstat (limited to 'drivers/rtc/rtc-puv3.c')
| -rw-r--r-- | drivers/rtc/rtc-puv3.c | 27 | 
1 files changed, 12 insertions, 15 deletions
diff --git a/drivers/rtc/rtc-puv3.c b/drivers/rtc/rtc-puv3.c index 0407e13d4de..72f437170d2 100644 --- a/drivers/rtc/rtc-puv3.c +++ b/drivers/rtc/rtc-puv3.c @@ -207,14 +207,14 @@ static const struct rtc_class_ops puv3_rtcops = {  	.proc	        = puv3_rtc_proc,  }; -static void puv3_rtc_enable(struct platform_device *pdev, int en) +static void puv3_rtc_enable(struct device *dev, int en)  {  	if (!en) {  		writel(readl(RTC_RTSR) & ~RTC_RTSR_HZE, RTC_RTSR);  	} else {  		/* re-enable the device, and check it is ok */  		if ((readl(RTC_RTSR) & RTC_RTSR_HZE) == 0) { -			dev_info(&pdev->dev, "rtc disabled, re-enabling\n"); +			dev_info(dev, "rtc disabled, re-enabling\n");  			writel(readl(RTC_RTSR) | RTC_RTSR_HZE, RTC_RTSR);  		}  	} @@ -276,7 +276,7 @@ static int puv3_rtc_probe(struct platform_device *pdev)  		goto err_nores;  	} -	puv3_rtc_enable(pdev, 1); +	puv3_rtc_enable(&pdev->dev, 1);  	/* register RTC and exit */  	rtc = rtc_device_register("pkunity", &pdev->dev, &puv3_rtcops, @@ -296,44 +296,41 @@ static int puv3_rtc_probe(struct platform_device *pdev)  	return 0;   err_nortc: -	puv3_rtc_enable(pdev, 0); +	puv3_rtc_enable(&pdev->dev, 0);  	release_resource(puv3_rtc_mem);   err_nores:  	return ret;  } -#ifdef CONFIG_PM - +#ifdef CONFIG_PM_SLEEP  static int ticnt_save; -static int puv3_rtc_suspend(struct platform_device *pdev, pm_message_t state) +static int puv3_rtc_suspend(struct device *dev)  {  	/* save RTAR for anyone using periodic interrupts */  	ticnt_save = readl(RTC_RTAR); -	puv3_rtc_enable(pdev, 0); +	puv3_rtc_enable(dev, 0);  	return 0;  } -static int puv3_rtc_resume(struct platform_device *pdev) +static int puv3_rtc_resume(struct device *dev)  { -	puv3_rtc_enable(pdev, 1); +	puv3_rtc_enable(dev, 1);  	writel(ticnt_save, RTC_RTAR);  	return 0;  } -#else -#define puv3_rtc_suspend NULL -#define puv3_rtc_resume  NULL  #endif +static SIMPLE_DEV_PM_OPS(puv3_rtc_pm_ops, puv3_rtc_suspend, puv3_rtc_resume); +  static struct platform_driver puv3_rtc_driver = {  	.probe		= puv3_rtc_probe,  	.remove		= puv3_rtc_remove, -	.suspend	= puv3_rtc_suspend, -	.resume		= puv3_rtc_resume,  	.driver		= {  		.name	= "PKUnity-v3-RTC",  		.owner	= THIS_MODULE, +		.pm	= &puv3_rtc_pm_ops,  	}  };  |