rtc: pm8xxx: Return -ENODEV if set_time disallowed
authorLoic Poulain <loic.poulain@linaro.org>
Thu, 17 Feb 2022 09:36:18 +0000 (10:36 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Fri, 25 Mar 2022 10:38:33 +0000 (11:38 +0100)
Having !allow_set_time is equivalent to non-implemented set_time
function, which is normally represented with -ENODEV error in RTC
subsystem.

Today we are returning -EACCES error code, which is not considered
by RTC clients as a 'non implemented' feature, and which causes NTP
to retry hw clk sync (update_rtc) indefinitely.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/1645090578-20734-1-git-send-email-loic.poulain@linaro.org
drivers/rtc/rtc-pm8xxx.c

index 75954dd..dc6d147 100644 (file)
@@ -84,7 +84,7 @@ static int pm8xxx_rtc_set_time(struct device *dev, struct rtc_time *tm)
        const struct pm8xxx_rtc_regs *regs = rtc_dd->regs;
 
        if (!rtc_dd->allow_set_time)
-               return -EACCES;
+               return -ENODEV;
 
        secs = rtc_tm_to_time64(tm);