diff options
author | Jingoo Han <jg1.han@samsung.com> | 2013-04-29 19:20:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-29 21:28:38 -0400 |
commit | 76753caf7080a0ea28ac1567c919afe5ab2e0e79 (patch) | |
tree | a885e06e3c3c4d3cbb32ce654dfbcbf21f120146 /drivers/rtc | |
parent | dd48ccc491c3c327bef12e4d07bfa4d4266be3b9 (diff) |
rtc: rtc-pcf50633: use devm_*() functions
Use devm_*() functions to make cleanup paths simpler.
Signed-off-by: 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')
-rw-r--r-- | drivers/rtc/rtc-pcf50633.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/rtc/rtc-pcf50633.c b/drivers/rtc/rtc-pcf50633.c index e9f3135d305f..e6b6911c8e05 100644 --- a/drivers/rtc/rtc-pcf50633.c +++ b/drivers/rtc/rtc-pcf50633.c | |||
@@ -252,20 +252,17 @@ static int pcf50633_rtc_probe(struct platform_device *pdev) | |||
252 | { | 252 | { |
253 | struct pcf50633_rtc *rtc; | 253 | struct pcf50633_rtc *rtc; |
254 | 254 | ||
255 | rtc = kzalloc(sizeof(*rtc), GFP_KERNEL); | 255 | rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL); |
256 | if (!rtc) | 256 | if (!rtc) |
257 | return -ENOMEM; | 257 | return -ENOMEM; |
258 | 258 | ||
259 | rtc->pcf = dev_to_pcf50633(pdev->dev.parent); | 259 | rtc->pcf = dev_to_pcf50633(pdev->dev.parent); |
260 | platform_set_drvdata(pdev, rtc); | 260 | platform_set_drvdata(pdev, rtc); |
261 | rtc->rtc_dev = rtc_device_register("pcf50633-rtc", &pdev->dev, | 261 | rtc->rtc_dev = devm_rtc_device_register(&pdev->dev, "pcf50633-rtc", |
262 | &pcf50633_rtc_ops, THIS_MODULE); | 262 | &pcf50633_rtc_ops, THIS_MODULE); |
263 | 263 | ||
264 | if (IS_ERR(rtc->rtc_dev)) { | 264 | if (IS_ERR(rtc->rtc_dev)) |
265 | int ret = PTR_ERR(rtc->rtc_dev); | 265 | return PTR_ERR(rtc->rtc_dev); |
266 | kfree(rtc); | ||
267 | return ret; | ||
268 | } | ||
269 | 266 | ||
270 | pcf50633_register_irq(rtc->pcf, PCF50633_IRQ_ALARM, | 267 | pcf50633_register_irq(rtc->pcf, PCF50633_IRQ_ALARM, |
271 | pcf50633_rtc_irq, rtc); | 268 | pcf50633_rtc_irq, rtc); |
@@ -277,12 +274,8 @@ static int pcf50633_rtc_remove(struct platform_device *pdev) | |||
277 | struct pcf50633_rtc *rtc; | 274 | struct pcf50633_rtc *rtc; |
278 | 275 | ||
279 | rtc = platform_get_drvdata(pdev); | 276 | rtc = platform_get_drvdata(pdev); |
280 | |||
281 | pcf50633_free_irq(rtc->pcf, PCF50633_IRQ_ALARM); | 277 | pcf50633_free_irq(rtc->pcf, PCF50633_IRQ_ALARM); |
282 | 278 | ||
283 | rtc_device_unregister(rtc->rtc_dev); | ||
284 | kfree(rtc); | ||
285 | |||
286 | return 0; | 279 | return 0; |
287 | } | 280 | } |
288 | 281 | ||