]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
rtc: mc146818-lib: extract mc146818_avoid_UIP
authorMateusz Jończyk <mat.jonczyk@o2.pl>
Fri, 10 Dec 2021 20:01:27 +0000 (21:01 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 14 Dec 2022 13:02:53 +0000 (14:02 +0100)
commite8b7ff88eb0494232aa9964068d4eb892bf660eb
tree6f8fe4163f2e58b8a201c21ec385bc42c6a10c8a
parente07ee5d0f26983d70793bf5ebc56c9bda7c94086
rtc: mc146818-lib: extract mc146818_avoid_UIP

[ Upstream commit ec5895c0f2d87b9bf4185db1915e40fa6fcfc0ac ]

Function mc146818_get_time() contains an elaborate mechanism of reading
the RTC time while no RTC update is in progress. It turns out that
reading the RTC alarm clock also requires avoiding the RTC update.
Therefore, the mechanism in mc146818_get_time() should be reused - so
extract it into a separate function.

The logic in mc146818_avoid_UIP() is same as in mc146818_get_time()
except that after every

        if (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP) {

there is now "mdelay(1)".

To avoid producing a very unreadable patch, mc146818_get_time() will be
refactored to use mc146818_avoid_UIP() in the next patch.

Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20211210200131.153887-6-mat.jonczyk@o2.pl
Stable-dep-of: cd17420ebea5 ("rtc: cmos: avoid UIP when writing alarm time")
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 3f52afc6ed93b69eb684e25d8f9fa44c17d195ed)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
drivers/rtc/rtc-mc146818-lib.c
include/linux/mc146818rtc.h