rtc: hym8563: Return -EINVAL if the time is known to be invalid
authorPaul Kocialkowski <paul.kocialkowski@bootlin.com>
Thu, 12 Dec 2019 15:31:10 +0000 (16:31 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 Feb 2020 21:32:22 +0000 (16:32 -0500)
commit f236a2a2ebabad0848ad0995af7ad1dc7029e895 upstream.

The current code returns -EPERM when the voltage loss bit is set.
Since the bit indicates that the time value is not valid, return
-EINVAL instead, which is the appropriate error code for this
situation.

Fixes: dcaf03849352 ("rtc: add hym8563 rtc-driver")
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Link: https://lore.kernel.org/r/20191212153111.966923-1-paul.kocialkowski@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/rtc/rtc-hym8563.c

index e5ad527cb75e369945a7a533105d6d0d8573ac10..a8c2d38b24112f53b9e7561c9843ab3deca86db7 100644 (file)
@@ -105,7 +105,7 @@ static int hym8563_rtc_read_time(struct device *dev, struct rtc_time *tm)
 
        if (!hym8563->valid) {
                dev_warn(&client->dev, "no valid clock/calendar values available\n");
-               return -EPERM;
+               return -EINVAL;
        }
 
        ret = i2c_smbus_read_i2c_block_data(client, HYM8563_SEC, 7, buf);