Commit f53eeb853dfe408737ac6b8c3117bd21a9c60fd4
Committed by
Linus Torvalds
1 parent
663b35241d
Exists in
master
and in
16 other branches
drivers/rtc/rtc-twl.c: use devm_*() functions
Use devm_*() functions to make cleanup paths simpler, and remove unnecessary remove(). Signed-off-by: Jingoo Han <jg1.han@samsung.com> Cc: Yoichi Yuasa <yuasa@linux-mips.org> Cc: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 13 additions and 25 deletions Side-by-side Diff
drivers/rtc/rtc-twl.c
... | ... | @@ -479,7 +479,7 @@ |
479 | 479 | u8 rd_reg; |
480 | 480 | |
481 | 481 | if (irq <= 0) |
482 | - goto out1; | |
482 | + return ret; | |
483 | 483 | |
484 | 484 | /* Initialize the register map */ |
485 | 485 | if (twl_class_is_4030()) |
... | ... | @@ -489,7 +489,7 @@ |
489 | 489 | |
490 | 490 | ret = twl_rtc_read_u8(&rd_reg, REG_RTC_STATUS_REG); |
491 | 491 | if (ret < 0) |
492 | - goto out1; | |
492 | + return ret; | |
493 | 493 | |
494 | 494 | if (rd_reg & BIT_RTC_STATUS_REG_POWER_UP_M) |
495 | 495 | dev_warn(&pdev->dev, "Power up reset detected.\n"); |
... | ... | @@ -500,7 +500,7 @@ |
500 | 500 | /* Clear RTC Power up reset and pending alarm interrupts */ |
501 | 501 | ret = twl_rtc_write_u8(rd_reg, REG_RTC_STATUS_REG); |
502 | 502 | if (ret < 0) |
503 | - goto out1; | |
503 | + return ret; | |
504 | 504 | |
505 | 505 | if (twl_class_is_6030()) { |
506 | 506 | twl6030_interrupt_unmask(TWL6030_RTC_INT_MASK, |
... | ... | @@ -512,7 +512,7 @@ |
512 | 512 | dev_info(&pdev->dev, "Enabling TWL-RTC\n"); |
513 | 513 | ret = twl_rtc_write_u8(BIT_RTC_CTRL_REG_STOP_RTC_M, REG_RTC_CTRL_REG); |
514 | 514 | if (ret < 0) |
515 | - goto out1; | |
515 | + return ret; | |
516 | 516 | |
517 | 517 | /* ensure interrupts are disabled, bootloaders can be strange */ |
518 | 518 | ret = twl_rtc_write_u8(0, REG_RTC_INTERRUPTS_REG); |
519 | 519 | |
520 | 520 | |
521 | 521 | |
522 | 522 | |
523 | 523 | |
524 | 524 | |
... | ... | @@ -522,34 +522,29 @@ |
522 | 522 | /* init cached IRQ enable bits */ |
523 | 523 | ret = twl_rtc_read_u8(&rtc_irq_bits, REG_RTC_INTERRUPTS_REG); |
524 | 524 | if (ret < 0) |
525 | - goto out1; | |
525 | + return ret; | |
526 | 526 | |
527 | 527 | device_init_wakeup(&pdev->dev, 1); |
528 | 528 | |
529 | - rtc = rtc_device_register(pdev->name, | |
530 | - &pdev->dev, &twl_rtc_ops, THIS_MODULE); | |
529 | + rtc = devm_rtc_device_register(&pdev->dev, pdev->name, | |
530 | + &twl_rtc_ops, THIS_MODULE); | |
531 | 531 | if (IS_ERR(rtc)) { |
532 | - ret = PTR_ERR(rtc); | |
533 | 532 | dev_err(&pdev->dev, "can't register RTC device, err %ld\n", |
534 | 533 | PTR_ERR(rtc)); |
535 | - goto out1; | |
534 | + return PTR_ERR(rtc); | |
536 | 535 | } |
537 | 536 | |
538 | - ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt, | |
539 | - IRQF_TRIGGER_RISING | IRQF_ONESHOT, | |
540 | - dev_name(&rtc->dev), rtc); | |
537 | + ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, | |
538 | + twl_rtc_interrupt, | |
539 | + IRQF_TRIGGER_RISING | IRQF_ONESHOT, | |
540 | + dev_name(&rtc->dev), rtc); | |
541 | 541 | if (ret < 0) { |
542 | 542 | dev_err(&pdev->dev, "IRQ is not free.\n"); |
543 | - goto out2; | |
543 | + return ret; | |
544 | 544 | } |
545 | 545 | |
546 | 546 | platform_set_drvdata(pdev, rtc); |
547 | 547 | return 0; |
548 | - | |
549 | -out2: | |
550 | - rtc_device_unregister(rtc); | |
551 | -out1: | |
552 | - return ret; | |
553 | 548 | } |
554 | 549 | |
555 | 550 | /* |
... | ... | @@ -559,9 +554,6 @@ |
559 | 554 | static int twl_rtc_remove(struct platform_device *pdev) |
560 | 555 | { |
561 | 556 | /* leave rtc running, but disable irqs */ |
562 | - struct rtc_device *rtc = platform_get_drvdata(pdev); | |
563 | - int irq = platform_get_irq(pdev, 0); | |
564 | - | |
565 | 557 | mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_ALARM_M); |
566 | 558 | mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M); |
567 | 559 | if (twl_class_is_6030()) { |
... | ... | @@ -571,10 +563,6 @@ |
571 | 563 | REG_INT_MSK_STS_A); |
572 | 564 | } |
573 | 565 | |
574 | - | |
575 | - free_irq(irq, rtc); | |
576 | - | |
577 | - rtc_device_unregister(rtc); | |
578 | 566 | return 0; |
579 | 567 | } |
580 | 568 |