aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMario Limonciello <[email protected]>2023-11-27 23:36:52 -0600
committerAlexandre Belloni <[email protected]>2023-12-17 22:33:55 +0100
commit120931db07b49252aba2073096b595482d71857c (patch)
tree8e36f94ece5cf7ac211dcf830c2ad66bbc33dcb0 /include
parent1311a8f0d4b23f58bbababa13623aa40b8ad4e0c (diff)
rtc: Add support for configuring the UIP timeout for RTC reads
The UIP timeout is hardcoded to 10ms for all RTC reads, but in some contexts this might not be enough time. Add a timeout parameter to mc146818_get_time() and mc146818_get_time_callback(). If UIP timeout is configured by caller to be >=100 ms and a call takes this long, log a warning. Make all callers use 10ms to ensure no functional changes. Cc: <[email protected]> # 6.1.y Fixes: ec5895c0f2d8 ("rtc: mc146818-lib: extract mc146818_avoid_UIP") Signed-off-by: Mario Limonciello <[email protected]> Tested-by: Mateusz Jończyk <[email protected]> Reviewed-by: Mateusz Jończyk <[email protected]> Acked-by: Mateusz Jończyk <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alexandre Belloni <[email protected]>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mc146818rtc.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/mc146818rtc.h b/include/linux/mc146818rtc.h
index b0da04fe087b..34dfcc77f505 100644
--- a/include/linux/mc146818rtc.h
+++ b/include/linux/mc146818rtc.h
@@ -126,10 +126,11 @@ struct cmos_rtc_board_info {
#endif /* ARCH_RTC_LOCATION */
bool mc146818_does_rtc_work(void);
-int mc146818_get_time(struct rtc_time *time);
+int mc146818_get_time(struct rtc_time *time, int timeout);
int mc146818_set_time(struct rtc_time *time);
bool mc146818_avoid_UIP(void (*callback)(unsigned char seconds, void *param),
+ int timeout,
void *param);
#endif /* _MC146818RTC_H */