Lines Matching refs:timer
40 static bool timer_is_armed(struct arch_timer_cpu *timer) in timer_is_armed() argument
42 return timer->armed; in timer_is_armed()
46 static void timer_arm(struct arch_timer_cpu *timer, u64 ns) in timer_arm() argument
48 timer->armed = true; in timer_arm()
49 hrtimer_start(&timer->timer, ktime_add_ns(ktime_get(), ns), in timer_arm()
53 static void timer_disarm(struct arch_timer_cpu *timer) in timer_disarm() argument
55 if (timer_is_armed(timer)) { in timer_disarm()
56 hrtimer_cancel(&timer->timer); in timer_disarm()
57 cancel_work_sync(&timer->expired); in timer_disarm()
58 timer->armed = false; in timer_disarm()
65 struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu; in kvm_timer_inject_irq() local
67 timer->cntv_ctl |= ARCH_TIMER_CTRL_IT_MASK; in kvm_timer_inject_irq()
69 timer->irq->irq, in kvm_timer_inject_irq()
70 timer->irq->level); in kvm_timer_inject_irq()
108 struct arch_timer_cpu *timer; in kvm_timer_expire() local
109 timer = container_of(hrt, struct arch_timer_cpu, timer); in kvm_timer_expire()
110 queue_work(wqueue, &timer->expired); in kvm_timer_expire()
116 struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu; in kvm_timer_should_fire() local
119 if ((timer->cntv_ctl & ARCH_TIMER_CTRL_IT_MASK) || in kvm_timer_should_fire()
120 !(timer->cntv_ctl & ARCH_TIMER_CTRL_ENABLE)) in kvm_timer_should_fire()
123 cval = timer->cntv_cval; in kvm_timer_should_fire()
124 now = kvm_phys_timer_read() - vcpu->kvm->arch.timer.cntvoff; in kvm_timer_should_fire()
138 struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu; in kvm_timer_flush_hwstate() local
145 timer_disarm(timer); in kvm_timer_flush_hwstate()
164 struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu; in kvm_timer_sync_hwstate() local
168 BUG_ON(timer_is_armed(timer)); in kvm_timer_sync_hwstate()
179 cval = timer->cntv_cval; in kvm_timer_sync_hwstate()
180 now = kvm_phys_timer_read() - vcpu->kvm->arch.timer.cntvoff; in kvm_timer_sync_hwstate()
184 timer_arm(timer, ns); in kvm_timer_sync_hwstate()
190 struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu; in kvm_timer_vcpu_reset() local
198 timer->irq = irq; in kvm_timer_vcpu_reset()
203 struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu; in kvm_timer_vcpu_init() local
205 INIT_WORK(&timer->expired, kvm_timer_inject_irq_work); in kvm_timer_vcpu_init()
206 hrtimer_init(&timer->timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); in kvm_timer_vcpu_init()
207 timer->timer.function = kvm_timer_expire; in kvm_timer_vcpu_init()
217 struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu; in kvm_arm_timer_set_reg() local
221 timer->cntv_ctl = value; in kvm_arm_timer_set_reg()
224 vcpu->kvm->arch.timer.cntvoff = kvm_phys_timer_read() - value; in kvm_arm_timer_set_reg()
227 timer->cntv_cval = value; in kvm_arm_timer_set_reg()
237 struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu; in kvm_arm_timer_get_reg() local
241 return timer->cntv_ctl; in kvm_arm_timer_get_reg()
243 return kvm_phys_timer_read() - vcpu->kvm->arch.timer.cntvoff; in kvm_arm_timer_get_reg()
245 return timer->cntv_cval; in kvm_arm_timer_get_reg()
335 struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu; in kvm_timer_vcpu_terminate() local
337 timer_disarm(timer); in kvm_timer_vcpu_terminate()
342 if (kvm->arch.timer.enabled) in kvm_timer_enable()
354 kvm->arch.timer.enabled = 1; in kvm_timer_enable()
359 kvm->arch.timer.cntvoff = kvm_phys_timer_read(); in kvm_timer_init()