diff options
Diffstat (limited to 'drivers/rtc/rtc-da9052.c')
-rw-r--r-- | drivers/rtc/rtc-da9052.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/drivers/rtc/rtc-da9052.c b/drivers/rtc/rtc-da9052.c index 78070255bd3f..0dde688ca09b 100644 --- a/drivers/rtc/rtc-da9052.c +++ b/drivers/rtc/rtc-da9052.c | |||
@@ -228,7 +228,7 @@ static const struct rtc_class_ops da9052_rtc_ops = { | |||
228 | .alarm_irq_enable = da9052_rtc_alarm_irq_enable, | 228 | .alarm_irq_enable = da9052_rtc_alarm_irq_enable, |
229 | }; | 229 | }; |
230 | 230 | ||
231 | static int __devinit da9052_rtc_probe(struct platform_device *pdev) | 231 | static int da9052_rtc_probe(struct platform_device *pdev) |
232 | { | 232 | { |
233 | struct da9052_rtc *rtc; | 233 | struct da9052_rtc *rtc; |
234 | int ret; | 234 | int ret; |
@@ -240,9 +240,10 @@ static int __devinit da9052_rtc_probe(struct platform_device *pdev) | |||
240 | rtc->da9052 = dev_get_drvdata(pdev->dev.parent); | 240 | rtc->da9052 = dev_get_drvdata(pdev->dev.parent); |
241 | platform_set_drvdata(pdev, rtc); | 241 | platform_set_drvdata(pdev, rtc); |
242 | rtc->irq = platform_get_irq_byname(pdev, "ALM"); | 242 | rtc->irq = platform_get_irq_byname(pdev, "ALM"); |
243 | ret = request_threaded_irq(rtc->irq, NULL, da9052_rtc_irq, | 243 | ret = devm_request_threaded_irq(&pdev->dev, rtc->irq, NULL, |
244 | IRQF_TRIGGER_LOW | IRQF_ONESHOT, | 244 | da9052_rtc_irq, |
245 | "ALM", rtc); | 245 | IRQF_TRIGGER_LOW | IRQF_ONESHOT, |
246 | "ALM", rtc); | ||
246 | if (ret != 0) { | 247 | if (ret != 0) { |
247 | rtc_err(rtc->da9052, "irq registration failed: %d\n", ret); | 248 | rtc_err(rtc->da9052, "irq registration failed: %d\n", ret); |
248 | return ret; | 249 | return ret; |
@@ -250,24 +251,17 @@ static int __devinit da9052_rtc_probe(struct platform_device *pdev) | |||
250 | 251 | ||
251 | rtc->rtc = rtc_device_register(pdev->name, &pdev->dev, | 252 | rtc->rtc = rtc_device_register(pdev->name, &pdev->dev, |
252 | &da9052_rtc_ops, THIS_MODULE); | 253 | &da9052_rtc_ops, THIS_MODULE); |
253 | if (IS_ERR(rtc->rtc)) { | 254 | if (IS_ERR(rtc->rtc)) |
254 | ret = PTR_ERR(rtc->rtc); | 255 | return PTR_ERR(rtc->rtc); |
255 | goto err_free_irq; | ||
256 | } | ||
257 | 256 | ||
258 | return 0; | 257 | return 0; |
259 | |||
260 | err_free_irq: | ||
261 | free_irq(rtc->irq, rtc); | ||
262 | return ret; | ||
263 | } | 258 | } |
264 | 259 | ||
265 | static int __devexit da9052_rtc_remove(struct platform_device *pdev) | 260 | static int da9052_rtc_remove(struct platform_device *pdev) |
266 | { | 261 | { |
267 | struct da9052_rtc *rtc = pdev->dev.platform_data; | 262 | struct da9052_rtc *rtc = pdev->dev.platform_data; |
268 | 263 | ||
269 | rtc_device_unregister(rtc->rtc); | 264 | rtc_device_unregister(rtc->rtc); |
270 | free_irq(rtc->irq, rtc); | ||
271 | platform_set_drvdata(pdev, NULL); | 265 | platform_set_drvdata(pdev, NULL); |
272 | 266 | ||
273 | return 0; | 267 | return 0; |
@@ -275,7 +269,7 @@ static int __devexit da9052_rtc_remove(struct platform_device *pdev) | |||
275 | 269 | ||
276 | static struct platform_driver da9052_rtc_driver = { | 270 | static struct platform_driver da9052_rtc_driver = { |
277 | .probe = da9052_rtc_probe, | 271 | .probe = da9052_rtc_probe, |
278 | .remove = __devexit_p(da9052_rtc_remove), | 272 | .remove = da9052_rtc_remove, |
279 | .driver = { | 273 | .driver = { |
280 | .name = "da9052-rtc", | 274 | .name = "da9052-rtc", |
281 | .owner = THIS_MODULE, | 275 | .owner = THIS_MODULE, |