diff options
author | Mario Limonciello <[email protected]> | 2023-11-27 23:36:50 -0600 |
---|---|---|
committer | Alexandre Belloni <[email protected]> | 2023-12-17 22:33:54 +0100 |
commit | af838635a3eb9b1bc0d98599c101ebca98f31311 (patch) | |
tree | 5ff710ec145fafe0c9f4aff3aabb422ff5583a56 | |
parent | 3d762e21d56370a43478b55e604b4a83dd85aafc (diff) |
rtc: mc146818-lib: Adjust failure return code for mc146818_get_time()
mc146818_get_time() calls mc146818_avoid_UIP() to avoid fetching the
time while RTC update is in progress (UIP). When this fails, the return
code is -EIO, but actually there was no IO failure.
The reason for the return from mc146818_avoid_UIP() is that the UIP
wasn't cleared in the time period. Adjust the return code to -ETIMEDOUT
to match the behavior.
Tested-by: Mateusz Jończyk <[email protected]>
Reviewed-by: Mateusz Jończyk <[email protected]>
Acked-by: Mateusz Jończyk <[email protected]>
Cc: <[email protected]>
Fixes: 2a61b0ac5493 ("rtc: mc146818-lib: refactor mc146818_get_time")
Signed-off-by: Mario Limonciello <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Alexandre Belloni <[email protected]>
-rw-r--r-- | drivers/rtc/rtc-mc146818-lib.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/rtc/rtc-mc146818-lib.c b/drivers/rtc/rtc-mc146818-lib.c index f1c09f1db044..43a28e82674e 100644 --- a/drivers/rtc/rtc-mc146818-lib.c +++ b/drivers/rtc/rtc-mc146818-lib.c @@ -138,7 +138,7 @@ int mc146818_get_time(struct rtc_time *time) if (!mc146818_avoid_UIP(mc146818_get_time_callback, &p)) { memset(time, 0, sizeof(*time)); - return -EIO; + return -ETIMEDOUT; } if (!(p.ctrl & RTC_DM_BINARY) || RTC_ALWAYS_BCD) |