u64 nvkm_timer_read(struct nvkm_timer *);
 void nvkm_timer_alarm(struct nvkm_timer *, u32 nsec, struct nvkm_alarm *);
-void nvkm_timer_alarm_cancel(struct nvkm_timer *, struct nvkm_alarm *);
 
 /* Delay based on GPU time (ie. PTIMER).
  *
 
 gk20a_pmu_fini(struct nvkm_pmu *pmu)
 {
        struct gk20a_pmu *gpmu = gk20a_pmu(pmu);
-       nvkm_timer_alarm_cancel(pmu->subdev.device->timer, &gpmu->alarm);
+       nvkm_timer_alarm(pmu->subdev.device->timer, 0, &gpmu->alarm);
 
        nvkm_falcon_put(pmu->falcon, &pmu->subdev);
 }
 
 
        switch (mode) {
        case NVKM_THERM_CTRL_MANUAL:
-               nvkm_timer_alarm_cancel(tmr, &therm->alarm);
+               nvkm_timer_alarm(tmr, 0, &therm->alarm);
                duty = nvkm_therm_fan_get(therm);
                if (duty < 0)
                        duty = 100;
                break;
        case NVKM_THERM_CTRL_NONE:
        default:
-               nvkm_timer_alarm_cancel(tmr, &therm->alarm);
+               nvkm_timer_alarm(tmr, 0, &therm->alarm);
                poll = false;
        }
 
 
 {
        struct nvkm_timer *tmr = therm->subdev.device->timer;
        if (suspend)
-               nvkm_timer_alarm_cancel(tmr, &therm->fan->alarm);
+               nvkm_timer_alarm(tmr, 0, &therm->fan->alarm);
        return 0;
 }
 
 
 {
        struct nvkm_timer *tmr = therm->subdev.device->timer;
        if (suspend)
-               nvkm_timer_alarm_cancel(tmr, &therm->sensor.therm_poll_alarm);
+               nvkm_timer_alarm(tmr, 0, &therm->sensor.therm_poll_alarm);
        return 0;
 }
 
 
        spin_unlock_irqrestore(&tmr->lock, flags);
 }
 
-void
-nvkm_timer_alarm_cancel(struct nvkm_timer *tmr, struct nvkm_alarm *alarm)
-{
-       unsigned long flags;
-       spin_lock_irqsave(&tmr->lock, flags);
-       list_del_init(&alarm->head);
-       spin_unlock_irqrestore(&tmr->lock, flags);
-}
-
 static void
 nvkm_timer_intr(struct nvkm_subdev *subdev)
 {