]> git.baikalelectronics.ru Git - kernel.git/commitdiff
rtc: s3c: Disable all enable (RTC, tick) bits in the probe
authorMarek Szyprowski <m.szyprowski@samsung.com>
Wed, 2 Dec 2020 11:13:17 +0000 (12:13 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 3 Dec 2020 22:51:30 +0000 (23:51 +0100)
Bootloader might use RTC hardware and leave it in the enabled state. Ensure
that the potentially enabled periodic tick interrupts are disabled before
enabling the driver, because they might cause lockup if tick interrupt
happens after disabling RTC gate clock.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201202111318.5353-1-m.szyprowski@samsung.com
drivers/rtc/rtc-s3c.c

index 24a41909f049f4e0a7bed470c231afd1c41cdfd7..16a326e95d46e9c415d40053e23e9f2afa315af8 100644 (file)
@@ -503,6 +503,10 @@ static int s3c_rtc_probe(struct platform_device *pdev)
                        goto err_src_clk;
        }
 
+       /* disable RTC enable bits potentially set by the bootloader */
+       if (info->data->disable)
+               info->data->disable(info);
+
        /* check to see if everything is setup correctly */
        if (info->data->enable)
                info->data->enable(info);