Lines Matching refs:tmr
27 nvkm_timer_read(struct nvkm_timer *tmr) in nvkm_timer_read() argument
29 return tmr->func->read(tmr); in nvkm_timer_read()
33 nvkm_timer_alarm_trigger(struct nvkm_timer *tmr) in nvkm_timer_alarm_trigger() argument
40 spin_lock_irqsave(&tmr->lock, flags); in nvkm_timer_alarm_trigger()
41 list_for_each_entry_safe(alarm, atemp, &tmr->alarms, head) { in nvkm_timer_alarm_trigger()
43 if (alarm->timestamp > nvkm_timer_read(tmr)) { in nvkm_timer_alarm_trigger()
45 tmr->func->alarm_init(tmr, alarm->timestamp); in nvkm_timer_alarm_trigger()
46 if (alarm->timestamp > nvkm_timer_read(tmr)) in nvkm_timer_alarm_trigger()
58 if (list_empty(&tmr->alarms)) in nvkm_timer_alarm_trigger()
59 tmr->func->alarm_fini(tmr); in nvkm_timer_alarm_trigger()
60 spin_unlock_irqrestore(&tmr->lock, flags); in nvkm_timer_alarm_trigger()
70 nvkm_timer_alarm(struct nvkm_timer *tmr, u32 nsec, struct nvkm_alarm *alarm) in nvkm_timer_alarm() argument
80 spin_lock_irqsave(&tmr->lock, flags); in nvkm_timer_alarm()
85 alarm->timestamp = nvkm_timer_read(tmr) + nsec; in nvkm_timer_alarm()
86 list_for_each_entry(list, &tmr->alarms, head) { in nvkm_timer_alarm()
94 list = list_first_entry(&tmr->alarms, typeof(*list), head); in nvkm_timer_alarm()
96 tmr->func->alarm_init(tmr, alarm->timestamp); in nvkm_timer_alarm()
102 WARN_ON(alarm->timestamp <= nvkm_timer_read(tmr)); in nvkm_timer_alarm()
105 spin_unlock_irqrestore(&tmr->lock, flags); in nvkm_timer_alarm()
111 struct nvkm_timer *tmr = nvkm_timer(subdev); in nvkm_timer_intr() local
112 tmr->func->intr(tmr); in nvkm_timer_intr()
118 struct nvkm_timer *tmr = nvkm_timer(subdev); in nvkm_timer_fini() local
119 tmr->func->alarm_fini(tmr); in nvkm_timer_fini()
126 struct nvkm_timer *tmr = nvkm_timer(subdev); in nvkm_timer_init() local
127 if (tmr->func->init) in nvkm_timer_init()
128 tmr->func->init(tmr); in nvkm_timer_init()
129 tmr->func->time(tmr, ktime_to_ns(ktime_get())); in nvkm_timer_init()
130 nvkm_timer_alarm_trigger(tmr); in nvkm_timer_init()
152 struct nvkm_timer *tmr; in nvkm_timer_new_() local
154 if (!(tmr = *ptmr = kzalloc(sizeof(*tmr), GFP_KERNEL))) in nvkm_timer_new_()
157 nvkm_subdev_ctor(&nvkm_timer, device, index, &tmr->subdev); in nvkm_timer_new_()
158 tmr->func = func; in nvkm_timer_new_()
159 INIT_LIST_HEAD(&tmr->alarms); in nvkm_timer_new_()
160 spin_lock_init(&tmr->lock); in nvkm_timer_new_()