mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-13 16:50:05 +00:00
rtc: use rtc_valid_tm() error code when reading date/time
There's a wrong comment in some RTC drivers that say it's better to ignore rtc_valid_tm() when reading RTC timestamp. However this is wrong and is better to return to the userspace the error if timestamp is not valid. Signed-off-by: Andrea Scian <andrea.scian@dave.eu> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
This commit is contained in:
parent
4ab8210313
commit
821f51c4da
@ -151,12 +151,7 @@ static int isl12022_get_datetime(struct i2c_client *client, struct rtc_time *tm)
|
|||||||
tm->tm_sec, tm->tm_min, tm->tm_hour,
|
tm->tm_sec, tm->tm_min, tm->tm_hour,
|
||||||
tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
|
tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
|
||||||
|
|
||||||
/* The clock can give out invalid datetime, but we cannot return
|
return rtc_valid_tm(tm);
|
||||||
* -EINVAL otherwise hwclock will refuse to set the time on bootup. */
|
|
||||||
if (rtc_valid_tm(tm) < 0)
|
|
||||||
dev_err(&client->dev, "retrieved date and time is invalid.\n");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int isl12022_set_datetime(struct i2c_client *client, struct rtc_time *tm)
|
static int isl12022_set_datetime(struct i2c_client *client, struct rtc_time *tm)
|
||||||
|
@ -165,13 +165,7 @@ static int pcf2123_rtc_read_time(struct device *dev, struct rtc_time *tm)
|
|||||||
tm->tm_sec, tm->tm_min, tm->tm_hour,
|
tm->tm_sec, tm->tm_min, tm->tm_hour,
|
||||||
tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
|
tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
|
||||||
|
|
||||||
/* the clock can give out invalid datetime, but we cannot return
|
return rtc_valid_tm(tm);
|
||||||
* -EINVAL otherwise hwclock will refuse to set the time on bootup.
|
|
||||||
*/
|
|
||||||
if (rtc_valid_tm(tm) < 0)
|
|
||||||
dev_err(dev, "retrieved date/time is not valid.\n");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pcf2123_rtc_set_time(struct device *dev, struct rtc_time *tm)
|
static int pcf2123_rtc_set_time(struct device *dev, struct rtc_time *tm)
|
||||||
|
@ -88,13 +88,7 @@ static int pcf2127_get_datetime(struct i2c_client *client, struct rtc_time *tm)
|
|||||||
tm->tm_sec, tm->tm_min, tm->tm_hour,
|
tm->tm_sec, tm->tm_min, tm->tm_hour,
|
||||||
tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
|
tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
|
||||||
|
|
||||||
/* the clock can give out invalid datetime, but we cannot return
|
return rtc_valid_tm(tm);
|
||||||
* -EINVAL otherwise hwclock will refuse to set the time on bootup.
|
|
||||||
*/
|
|
||||||
if (rtc_valid_tm(tm) < 0)
|
|
||||||
dev_err(&client->dev, "retrieved date/time is not valid.\n");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pcf2127_set_datetime(struct i2c_client *client, struct rtc_time *tm)
|
static int pcf2127_set_datetime(struct i2c_client *client, struct rtc_time *tm)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user