Lines Matching refs:alarm
71 struct nvkm_alarm *alarm, *atemp;
77 list_for_each_entry_safe(alarm, atemp, &tmr->alarms, head) {
78 /* Have we hit the earliest alarm that hasn't gone off? */
79 if (alarm->timestamp > nvkm_timer_read(tmr)) {
81 tmr->func->alarm_init(tmr, alarm->timestamp);
82 if (alarm->timestamp > nvkm_timer_read(tmr))
89 list_del_init(&alarm->head);
90 list_add(&alarm->exec, &exec);
99 list_for_each_entry_safe(alarm, atemp, &exec, exec) {
100 list_del(&alarm->exec);
101 alarm->func(alarm);
106 nvkm_timer_alarm(struct nvkm_timer *tmr, u32 nsec, struct nvkm_alarm *alarm)
111 /* Remove alarm from pending list.
114 * and implements alarm rescheduling/cancellation.
117 list_del_init(&alarm->head);
121 alarm->timestamp = nvkm_timer_read(tmr) + nsec;
123 if (list->timestamp > alarm->timestamp)
127 list_add_tail(&alarm->head, &list->head);
129 /* Update HW if this is now the earliest alarm. */
131 if (list == alarm) {
132 tmr->func->alarm_init(tmr, alarm->timestamp);
136 * 4 seconds for the next alarm to trigger.
138 WARN_ON(alarm->timestamp <= nvkm_timer_read(tmr));