diff options
author | Andrea Scian <andrea.scian@dave.eu> | 2015-06-16 05:35:19 -0400 |
---|---|---|
committer | Alexandre Belloni <alexandre.belloni@free-electrons.com> | 2015-09-05 07:19:06 -0400 |
commit | 821f51c4da869706356ddecfeeac286bf4df9b98 (patch) | |
tree | 0f6fcc6f2dab3927ac712d24f0708f9d5b00328e /drivers/rtc | |
parent | 4ab82103131777b9aabb6ba31aead6e5b0293b32 (diff) |
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>
Diffstat (limited to 'drivers/rtc')
-rw-r--r-- | drivers/rtc/rtc-isl12022.c | 7 | ||||
-rw-r--r-- | drivers/rtc/rtc-pcf2123.c | 8 | ||||
-rw-r--r-- | drivers/rtc/rtc-pcf2127.c | 8 |
3 files changed, 3 insertions, 20 deletions
diff --git a/drivers/rtc/rtc-isl12022.c b/drivers/rtc/rtc-isl12022.c index f9b082784b90..372627136786 100644 --- a/drivers/rtc/rtc-isl12022.c +++ b/drivers/rtc/rtc-isl12022.c | |||
@@ -151,12 +151,7 @@ static int isl12022_get_datetime(struct i2c_client *client, struct rtc_time *tm) | |||
151 | tm->tm_sec, tm->tm_min, tm->tm_hour, | 151 | tm->tm_sec, tm->tm_min, tm->tm_hour, |
152 | tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); | 152 | tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); |
153 | 153 | ||
154 | /* The clock can give out invalid datetime, but we cannot return | 154 | return rtc_valid_tm(tm); |
155 | * -EINVAL otherwise hwclock will refuse to set the time on bootup. */ | ||
156 | if (rtc_valid_tm(tm) < 0) | ||
157 | dev_err(&client->dev, "retrieved date and time is invalid.\n"); | ||
158 | |||
159 | return 0; | ||
160 | } | 155 | } |
161 | 156 | ||
162 | static int isl12022_set_datetime(struct i2c_client *client, struct rtc_time *tm) | 157 | static int isl12022_set_datetime(struct i2c_client *client, struct rtc_time *tm) |
diff --git a/drivers/rtc/rtc-pcf2123.c b/drivers/rtc/rtc-pcf2123.c index 8a7556cbcb7f..1c47650fe624 100644 --- a/drivers/rtc/rtc-pcf2123.c +++ b/drivers/rtc/rtc-pcf2123.c | |||
@@ -165,13 +165,7 @@ static int pcf2123_rtc_read_time(struct device *dev, struct rtc_time *tm) | |||
165 | tm->tm_sec, tm->tm_min, tm->tm_hour, | 165 | tm->tm_sec, tm->tm_min, tm->tm_hour, |
166 | tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); | 166 | tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); |
167 | 167 | ||
168 | /* the clock can give out invalid datetime, but we cannot return | 168 | return rtc_valid_tm(tm); |
169 | * -EINVAL otherwise hwclock will refuse to set the time on bootup. | ||
170 | */ | ||
171 | if (rtc_valid_tm(tm) < 0) | ||
172 | dev_err(dev, "retrieved date/time is not valid.\n"); | ||
173 | |||
174 | return 0; | ||
175 | } | 169 | } |
176 | 170 | ||
177 | static int pcf2123_rtc_set_time(struct device *dev, struct rtc_time *tm) | 171 | static int pcf2123_rtc_set_time(struct device *dev, struct rtc_time *tm) |
diff --git a/drivers/rtc/rtc-pcf2127.c b/drivers/rtc/rtc-pcf2127.c index 9bd842e97749..350c5c7cb678 100644 --- a/drivers/rtc/rtc-pcf2127.c +++ b/drivers/rtc/rtc-pcf2127.c | |||
@@ -88,13 +88,7 @@ static int pcf2127_get_datetime(struct i2c_client *client, struct rtc_time *tm) | |||
88 | tm->tm_sec, tm->tm_min, tm->tm_hour, | 88 | tm->tm_sec, tm->tm_min, tm->tm_hour, |
89 | tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); | 89 | tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); |
90 | 90 | ||
91 | /* the clock can give out invalid datetime, but we cannot return | 91 | return rtc_valid_tm(tm); |
92 | * -EINVAL otherwise hwclock will refuse to set the time on bootup. | ||
93 | */ | ||
94 | if (rtc_valid_tm(tm) < 0) | ||
95 | dev_err(&client->dev, "retrieved date/time is not valid.\n"); | ||
96 | |||
97 | return 0; | ||
98 | } | 92 | } |
99 | 93 | ||
100 | static int pcf2127_set_datetime(struct i2c_client *client, struct rtc_time *tm) | 94 | static int pcf2127_set_datetime(struct i2c_client *client, struct rtc_time *tm) |