Commit f53eeb853dfe408737ac6b8c3117bd21a9c60fd4

Authored by Jingoo Han
Committed by Linus Torvalds
1 parent 663b35241d

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