]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
rtc: goldfish: Enable interrupt in set_alarm() when necessary
authorHuacai Chen <chenhc@lemote.com>
Sat, 20 Jun 2020 12:04:43 +0000 (20:04 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Aug 2020 08:40:54 +0000 (10:40 +0200)
[ Upstream commit 22f8d5a1bf230cf8567a4121fc3789babb46336d ]

When use goldfish rtc, the "hwclock" command fails with "select() to
/dev/rtc to wait for clock tick timed out". This is because "hwclock"
need the set_alarm() hook to enable interrupt when alrm->enabled is
true. This operation is missing in goldfish rtc (but other rtc drivers,
such as cmos rtc, enable interrupt here), so add it.

Signed-off-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/1592654683-31314-1-git-send-email-chenhc@lemote.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/rtc/rtc-goldfish.c

index 1a3420ee6a4d964c44bd30bc2af415e66b82d4ee..d5083b013fbcef3951c8186823f7dcb2a97d212e 100644 (file)
@@ -73,6 +73,7 @@ static int goldfish_rtc_set_alarm(struct device *dev,
                rtc_alarm64 = rtc_tm_to_time64(&alrm->time) * NSEC_PER_SEC;
                writel((rtc_alarm64 >> 32), base + TIMER_ALARM_HIGH);
                writel(rtc_alarm64, base + TIMER_ALARM_LOW);
+               writel(1, base + TIMER_IRQ_ENABLED);
        } else {
                /*
                 * if this function was called with enabled=0