Commit 6d1d1cc9 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/timer: allow alarms to be cancelled

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 10caad33
...@@ -96,11 +96,16 @@ nv04_timer_alarm(struct nouveau_timer *ptimer, u64 time, ...@@ -96,11 +96,16 @@ nv04_timer_alarm(struct nouveau_timer *ptimer, u64 time,
/* append new alarm to list, in soonest-alarm-first order */ /* append new alarm to list, in soonest-alarm-first order */
spin_lock_irqsave(&priv->lock, flags); spin_lock_irqsave(&priv->lock, flags);
list_for_each_entry(list, &priv->alarms, head) { if (!time) {
if (list->timestamp > alarm->timestamp) if (!list_empty(&alarm->head))
break; list_del(&alarm->head);
} else {
list_for_each_entry(list, &priv->alarms, head) {
if (list->timestamp > alarm->timestamp)
break;
}
list_add_tail(&alarm->head, &list->head);
} }
list_add_tail(&alarm->head, &list->head);
spin_unlock_irqrestore(&priv->lock, flags); spin_unlock_irqrestore(&priv->lock, flags);
/* process pending alarms */ /* process pending alarms */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment