Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

rtc: stm32: manage the get_irq probe defer case

Manage the -EPROBE_DEFER error case for the wake IRQ.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Amelie Delaunay <amelie.delaunay@st.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

authored by

Fabien Dessenne and committed by
Alexandre Belloni
cf612c59 f9bf089a

+6 -3
+6 -3
drivers/rtc/rtc-stm32.c
··· 788 788 ret = device_init_wakeup(&pdev->dev, true); 789 789 if (rtc->data->has_wakeirq) { 790 790 rtc->wakeirq_alarm = platform_get_irq(pdev, 1); 791 - if (rtc->wakeirq_alarm <= 0) 792 - ret = rtc->wakeirq_alarm; 793 - else 791 + if (rtc->wakeirq_alarm > 0) { 794 792 ret = dev_pm_set_dedicated_wake_irq(&pdev->dev, 795 793 rtc->wakeirq_alarm); 794 + } else { 795 + ret = rtc->wakeirq_alarm; 796 + if (rtc->wakeirq_alarm == -EPROBE_DEFER) 797 + goto err; 798 + } 796 799 } 797 800 if (ret) 798 801 dev_warn(&pdev->dev, "alarm can't wake up the system: %d", ret);