Lines Matching refs:tmr

29 	struct nvkm_subdev *subdev = &wait->tmr->subdev;  in nvkm_timer_wait_test()
30 u64 time = nvkm_timer_read(wait->tmr); in nvkm_timer_wait_test()
57 wait->tmr = device->timer; in nvkm_timer_wait_init()
63 nvkm_timer_read(struct nvkm_timer *tmr) in nvkm_timer_read() argument
65 return tmr->func->read(tmr); in nvkm_timer_read()
69 nvkm_timer_alarm_trigger(struct nvkm_timer *tmr) in nvkm_timer_alarm_trigger() argument
76 spin_lock_irqsave(&tmr->lock, flags); in nvkm_timer_alarm_trigger()
77 list_for_each_entry_safe(alarm, atemp, &tmr->alarms, head) { in nvkm_timer_alarm_trigger()
79 if (alarm->timestamp > nvkm_timer_read(tmr)) { in nvkm_timer_alarm_trigger()
81 tmr->func->alarm_init(tmr, alarm->timestamp); in nvkm_timer_alarm_trigger()
82 if (alarm->timestamp > nvkm_timer_read(tmr)) in nvkm_timer_alarm_trigger()
94 if (list_empty(&tmr->alarms)) in nvkm_timer_alarm_trigger()
95 tmr->func->alarm_fini(tmr); in nvkm_timer_alarm_trigger()
96 spin_unlock_irqrestore(&tmr->lock, flags); in nvkm_timer_alarm_trigger()
106 nvkm_timer_alarm(struct nvkm_timer *tmr, u32 nsec, struct nvkm_alarm *alarm) in nvkm_timer_alarm() argument
116 spin_lock_irqsave(&tmr->lock, flags); in nvkm_timer_alarm()
121 alarm->timestamp = nvkm_timer_read(tmr) + nsec; in nvkm_timer_alarm()
122 list_for_each_entry(list, &tmr->alarms, head) { in nvkm_timer_alarm()
130 list = list_first_entry(&tmr->alarms, typeof(*list), head); in nvkm_timer_alarm()
132 tmr->func->alarm_init(tmr, alarm->timestamp); in nvkm_timer_alarm()
138 WARN_ON(alarm->timestamp <= nvkm_timer_read(tmr)); in nvkm_timer_alarm()
141 spin_unlock_irqrestore(&tmr->lock, flags); in nvkm_timer_alarm()
147 struct nvkm_timer *tmr = nvkm_timer(subdev); in nvkm_timer_intr() local
148 tmr->func->intr(tmr); in nvkm_timer_intr()
154 struct nvkm_timer *tmr = nvkm_timer(subdev); in nvkm_timer_fini() local
155 tmr->func->alarm_fini(tmr); in nvkm_timer_fini()
162 struct nvkm_timer *tmr = nvkm_timer(subdev); in nvkm_timer_init() local
163 if (tmr->func->init) in nvkm_timer_init()
164 tmr->func->init(tmr); in nvkm_timer_init()
165 tmr->func->time(tmr, ktime_to_ns(ktime_get())); in nvkm_timer_init()
166 nvkm_timer_alarm_trigger(tmr); in nvkm_timer_init()
188 struct nvkm_timer *tmr; in nvkm_timer_new_() local
190 if (!(tmr = *ptmr = kzalloc(sizeof(*tmr), GFP_KERNEL))) in nvkm_timer_new_()
193 nvkm_subdev_ctor(&nvkm_timer, device, type, inst, &tmr->subdev); in nvkm_timer_new_()
194 tmr->func = func; in nvkm_timer_new_()
195 INIT_LIST_HEAD(&tmr->alarms); in nvkm_timer_new_()
196 spin_lock_init(&tmr->lock); in nvkm_timer_new_()