[PATCH AUTOSEL 5.5 252/542] rtc: hym8563: Return -EINVAL if the time is known to be invalid

From: Sasha Levin
Date: Fri Feb 14 2020 - 13:08:32 EST


From: Paul Kocialkowski <paul.kocialkowski@xxxxxxxxxxx>

[ Upstream commit f236a2a2ebabad0848ad0995af7ad1dc7029e895 ]

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@xxxxxxxxxxx>
Link: https://lore.kernel.org/r/20191212153111.966923-1-paul.kocialkowski@xxxxxxxxxxx
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
drivers/rtc/rtc-hym8563.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/rtc/rtc-hym8563.c b/drivers/rtc/rtc-hym8563.c
index 443f6d05ce29c..fb6d7967ec006 100644
--- a/drivers/rtc/rtc-hym8563.c
+++ b/drivers/rtc/rtc-hym8563.c
@@ -97,7 +97,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);
--
2.20.1