Lines Matching refs:alarm

94 static int rtc_read_alarm_internal(struct rtc_device *rtc, struct rtc_wkalrm *alarm)  in rtc_read_alarm_internal()  argument
107 memset(alarm, 0, sizeof(struct rtc_wkalrm)); in rtc_read_alarm_internal()
108 err = rtc->ops->read_alarm(rtc->dev.parent, alarm); in rtc_read_alarm_internal()
115 int __rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm) in __rtc_read_alarm() argument
175 err = rtc_read_alarm_internal(rtc, alarm); in __rtc_read_alarm()
180 if (rtc_valid_tm(&alarm->time) == 0) in __rtc_read_alarm()
197 if (alarm->time.tm_sec == -1) in __rtc_read_alarm()
198 alarm->time.tm_sec = now.tm_sec; in __rtc_read_alarm()
199 if (alarm->time.tm_min == -1) in __rtc_read_alarm()
200 alarm->time.tm_min = now.tm_min; in __rtc_read_alarm()
201 if (alarm->time.tm_hour == -1) in __rtc_read_alarm()
202 alarm->time.tm_hour = now.tm_hour; in __rtc_read_alarm()
205 if (alarm->time.tm_mday < 1 || alarm->time.tm_mday > 31) { in __rtc_read_alarm()
206 alarm->time.tm_mday = now.tm_mday; in __rtc_read_alarm()
209 if ((unsigned)alarm->time.tm_mon >= 12) { in __rtc_read_alarm()
210 alarm->time.tm_mon = now.tm_mon; in __rtc_read_alarm()
214 if (alarm->time.tm_year == -1) { in __rtc_read_alarm()
215 alarm->time.tm_year = now.tm_year; in __rtc_read_alarm()
222 t_alm = rtc_tm_to_time64(&alarm->time); in __rtc_read_alarm()
236 rtc_time64_to_tm(t_alm, &alarm->time); in __rtc_read_alarm()
247 if (alarm->time.tm_mon < 11) in __rtc_read_alarm()
248 alarm->time.tm_mon++; in __rtc_read_alarm()
250 alarm->time.tm_mon = 0; in __rtc_read_alarm()
251 alarm->time.tm_year++; in __rtc_read_alarm()
253 days = rtc_month_days(alarm->time.tm_mon, in __rtc_read_alarm()
254 alarm->time.tm_year); in __rtc_read_alarm()
255 } while (days < alarm->time.tm_mday); in __rtc_read_alarm()
262 alarm->time.tm_year++; in __rtc_read_alarm()
263 } while (!is_leap_year(alarm->time.tm_year + 1900) in __rtc_read_alarm()
264 && rtc_valid_tm(&alarm->time) != 0); in __rtc_read_alarm()
272 err = rtc_valid_tm(&alarm->time); in __rtc_read_alarm()
276 alarm->time.tm_year + 1900, alarm->time.tm_mon + 1, in __rtc_read_alarm()
277 alarm->time.tm_mday, alarm->time.tm_hour, alarm->time.tm_min, in __rtc_read_alarm()
278 alarm->time.tm_sec); in __rtc_read_alarm()
284 int rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm) in rtc_read_alarm() argument
296 memset(alarm, 0, sizeof(struct rtc_wkalrm)); in rtc_read_alarm()
297 alarm->enabled = rtc->aie_timer.enabled; in rtc_read_alarm()
298 alarm->time = rtc_ktime_to_tm(rtc->aie_timer.node.expires); in rtc_read_alarm()
306 static int __rtc_set_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm) in __rtc_set_alarm() argument
312 err = rtc_valid_tm(&alarm->time); in __rtc_set_alarm()
315 scheduled = rtc_tm_to_time64(&alarm->time); in __rtc_set_alarm()
336 err = rtc->ops->set_alarm(rtc->dev.parent, alarm); in __rtc_set_alarm()
341 int rtc_set_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm) in rtc_set_alarm() argument
345 err = rtc_valid_tm(&alarm->time); in rtc_set_alarm()
355 rtc->aie_timer.node.expires = rtc_tm_to_ktime(alarm->time); in rtc_set_alarm()
357 if (alarm->enabled) in rtc_set_alarm()
366 int rtc_initialize_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm) in rtc_initialize_alarm() argument
371 err = rtc_valid_tm(&alarm->time); in rtc_initialize_alarm()
383 rtc->aie_timer.node.expires = rtc_tm_to_ktime(alarm->time); in rtc_initialize_alarm()
387 if (alarm->enabled && (rtc_tm_to_ktime(now).tv64 < in rtc_initialize_alarm()
754 struct rtc_wkalrm alarm; in rtc_timer_enqueue() local
756 alarm.time = rtc_ktime_to_tm(timer->node.expires); in rtc_timer_enqueue()
757 alarm.enabled = 1; in rtc_timer_enqueue()
758 err = __rtc_set_alarm(rtc, &alarm); in rtc_timer_enqueue()
797 struct rtc_wkalrm alarm; in rtc_timer_remove() local
804 alarm.time = rtc_ktime_to_tm(next->expires); in rtc_timer_remove()
805 alarm.enabled = 1; in rtc_timer_remove()
806 err = __rtc_set_alarm(rtc, &alarm); in rtc_timer_remove()
860 struct rtc_wkalrm alarm; in rtc_timer_do_work() local
864 alarm.time = rtc_ktime_to_tm(next->expires); in rtc_timer_do_work()
865 alarm.enabled = 1; in rtc_timer_do_work()
867 err = __rtc_set_alarm(rtc, &alarm); in rtc_timer_do_work()