diff options
Diffstat (limited to 'drivers/rtc/rtc-wm8350.c')
| -rw-r--r-- | drivers/rtc/rtc-wm8350.c | 56 | 
1 files changed, 8 insertions, 48 deletions
diff --git a/drivers/rtc/rtc-wm8350.c b/drivers/rtc/rtc-wm8350.c index 3d0dc76b38a..fa247deb9cf 100644 --- a/drivers/rtc/rtc-wm8350.c +++ b/drivers/rtc/rtc-wm8350.c @@ -302,26 +302,6 @@ static int wm8350_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)  	return ret;  } -static int wm8350_rtc_update_irq_enable(struct device *dev, -					unsigned int enabled) -{ -	struct wm8350 *wm8350 = dev_get_drvdata(dev); - -	/* Suppress duplicate changes since genirq nests enable and -	 * disable calls. */ -	if (enabled == wm8350->rtc.update_enabled) -		return 0; - -	if (enabled) -		wm8350_unmask_irq(wm8350, WM8350_IRQ_RTC_SEC); -	else -		wm8350_mask_irq(wm8350, WM8350_IRQ_RTC_SEC); - -	wm8350->rtc.update_enabled = enabled; - -	return 0; -} -  static irqreturn_t wm8350_rtc_alarm_handler(int irq, void *data)  {  	struct wm8350 *wm8350 = data; @@ -357,10 +337,9 @@ static const struct rtc_class_ops wm8350_rtc_ops = {  	.read_alarm = wm8350_rtc_readalarm,  	.set_alarm = wm8350_rtc_setalarm,  	.alarm_irq_enable = wm8350_rtc_alarm_irq_enable, -	.update_irq_enable = wm8350_rtc_update_irq_enable,  }; -#ifdef CONFIG_PM +#ifdef CONFIG_PM_SLEEP  static int wm8350_rtc_suspend(struct device *dev)  {  	struct platform_device *pdev = to_platform_device(dev); @@ -396,10 +375,6 @@ static int wm8350_rtc_resume(struct device *dev)  	return 0;  } - -#else -#define wm8350_rtc_suspend NULL -#define wm8350_rtc_resume NULL  #endif  static int wm8350_rtc_probe(struct platform_device *pdev) @@ -460,8 +435,8 @@ static int wm8350_rtc_probe(struct platform_device *pdev)  	device_init_wakeup(&pdev->dev, 1); -	wm_rtc->rtc = rtc_device_register("wm8350", &pdev->dev, -					  &wm8350_rtc_ops, THIS_MODULE); +	wm_rtc->rtc = devm_rtc_device_register(&pdev->dev, "wm8350", +					&wm8350_rtc_ops, THIS_MODULE);  	if (IS_ERR(wm_rtc->rtc)) {  		ret = PTR_ERR(wm_rtc->rtc);  		dev_err(&pdev->dev, "failed to register RTC: %d\n", ret); @@ -480,44 +455,29 @@ static int wm8350_rtc_probe(struct platform_device *pdev)  	return 0;  } -static int __devexit wm8350_rtc_remove(struct platform_device *pdev) +static int wm8350_rtc_remove(struct platform_device *pdev)  {  	struct wm8350 *wm8350 = platform_get_drvdata(pdev); -	struct wm8350_rtc *wm_rtc = &wm8350->rtc;  	wm8350_free_irq(wm8350, WM8350_IRQ_RTC_SEC, wm8350);  	wm8350_free_irq(wm8350, WM8350_IRQ_RTC_ALM, wm8350); -	rtc_device_unregister(wm_rtc->rtc); -  	return 0;  } -static struct dev_pm_ops wm8350_rtc_pm_ops = { -	.suspend = wm8350_rtc_suspend, -	.resume = wm8350_rtc_resume, -}; +static SIMPLE_DEV_PM_OPS(wm8350_rtc_pm_ops, wm8350_rtc_suspend, +			wm8350_rtc_resume);  static struct platform_driver wm8350_rtc_driver = {  	.probe = wm8350_rtc_probe, -	.remove = __devexit_p(wm8350_rtc_remove), +	.remove = wm8350_rtc_remove,  	.driver = {  		.name = "wm8350-rtc",  		.pm = &wm8350_rtc_pm_ops,  	},  }; -static int __init wm8350_rtc_init(void) -{ -	return platform_driver_register(&wm8350_rtc_driver); -} -module_init(wm8350_rtc_init); - -static void __exit wm8350_rtc_exit(void) -{ -	platform_driver_unregister(&wm8350_rtc_driver); -} -module_exit(wm8350_rtc_exit); +module_platform_driver(wm8350_rtc_driver);  MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>");  MODULE_DESCRIPTION("RTC driver for the WM8350");  | 
