Lines Matching refs:tmr

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