| .. | .. |
|---|
| 519 | 519 | /* Write to Alarm register */ |
|---|
| 520 | 520 | writel_relaxed(alrmar, rtc->base + regs->alrmar); |
|---|
| 521 | 521 | |
|---|
| 522 | | - if (alrm->enabled) |
|---|
| 523 | | - stm32_rtc_alarm_irq_enable(dev, 1); |
|---|
| 524 | | - else |
|---|
| 525 | | - stm32_rtc_alarm_irq_enable(dev, 0); |
|---|
| 526 | | - |
|---|
| 522 | + stm32_rtc_alarm_irq_enable(dev, alrm->enabled); |
|---|
| 527 | 523 | end: |
|---|
| 528 | 524 | stm32_rtc_wpr_lock(rtc); |
|---|
| 529 | 525 | |
|---|
| .. | .. |
|---|
| 697 | 693 | { |
|---|
| 698 | 694 | struct stm32_rtc *rtc; |
|---|
| 699 | 695 | const struct stm32_rtc_registers *regs; |
|---|
| 700 | | - struct resource *res; |
|---|
| 701 | 696 | int ret; |
|---|
| 702 | 697 | |
|---|
| 703 | 698 | rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL); |
|---|
| 704 | 699 | if (!rtc) |
|---|
| 705 | 700 | return -ENOMEM; |
|---|
| 706 | 701 | |
|---|
| 707 | | - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
|---|
| 708 | | - rtc->base = devm_ioremap_resource(&pdev->dev, res); |
|---|
| 702 | + rtc->base = devm_platform_ioremap_resource(pdev, 0); |
|---|
| 709 | 703 | if (IS_ERR(rtc->base)) |
|---|
| 710 | 704 | return PTR_ERR(rtc->base); |
|---|
| 711 | 705 | |
|---|
| .. | .. |
|---|
| 780 | 774 | |
|---|
| 781 | 775 | rtc->irq_alarm = platform_get_irq(pdev, 0); |
|---|
| 782 | 776 | if (rtc->irq_alarm <= 0) { |
|---|
| 783 | | - dev_err(&pdev->dev, "no alarm irq\n"); |
|---|
| 784 | 777 | ret = rtc->irq_alarm; |
|---|
| 785 | 778 | goto err; |
|---|
| 786 | 779 | } |
|---|
| .. | .. |
|---|
| 906 | 899 | } |
|---|
| 907 | 900 | |
|---|
| 908 | 901 | ret = stm32_rtc_wait_sync(rtc); |
|---|
| 909 | | - if (ret < 0) |
|---|
| 902 | + if (ret < 0) { |
|---|
| 903 | + if (rtc->data->has_pclk) |
|---|
| 904 | + clk_disable_unprepare(rtc->pclk); |
|---|
| 910 | 905 | return ret; |
|---|
| 906 | + } |
|---|
| 911 | 907 | |
|---|
| 912 | 908 | if (device_may_wakeup(dev)) |
|---|
| 913 | 909 | return disable_irq_wake(rtc->irq_alarm); |
|---|