Lines Matching refs:ps

111 	struct kvm_kpit_state *ps = &kvm->arch.vpit->pit_state;  in __kpit_elapsed()  local
113 if (!ps->period) in __kpit_elapsed()
125 remaining = hrtimer_get_remaining(&ps->timer); in __kpit_elapsed()
126 elapsed = ps->period - ktime_to_ns(remaining); in __kpit_elapsed()
237 struct kvm_kpit_state *ps = container_of(kian, struct kvm_kpit_state, in kvm_pit_ack_irq() local
241 spin_lock(&ps->inject_lock); in kvm_pit_ack_irq()
242 value = atomic_dec_return(&ps->pending); in kvm_pit_ack_irq()
247 atomic_inc(&ps->pending); in kvm_pit_ack_irq()
248 else if (value > 0 && ps->reinject) in kvm_pit_ack_irq()
252 queue_kthread_work(&ps->pit->worker, &ps->pit->expired); in kvm_pit_ack_irq()
253 ps->irq_ack = 1; in kvm_pit_ack_irq()
254 spin_unlock(&ps->inject_lock); in kvm_pit_ack_irq()
284 struct kvm_kpit_state *ps = &pit->pit_state; in pit_do_work() local
290 spin_lock(&ps->inject_lock); in pit_do_work()
291 if (!ps->reinject) in pit_do_work()
293 else if (ps->irq_ack) { in pit_do_work()
294 ps->irq_ack = 0; in pit_do_work()
297 spin_unlock(&ps->inject_lock); in pit_do_work()
319 struct kvm_kpit_state *ps = container_of(data, struct kvm_kpit_state, timer); in pit_timer_fn() local
320 struct kvm_pit *pt = ps->kvm->arch.vpit; in pit_timer_fn()
322 if (ps->reinject) in pit_timer_fn()
323 atomic_inc(&ps->pending); in pit_timer_fn()
327 if (ps->is_periodic) { in pit_timer_fn()
328 hrtimer_add_expires_ns(&ps->timer, ps->period); in pit_timer_fn()
336 struct kvm_kpit_state *ps = &kvm->arch.vpit->pit_state; in create_pit_timer() local
340 ps->flags & KVM_PIT_FLAGS_HPET_LEGACY) in create_pit_timer()
348 hrtimer_cancel(&ps->timer); in create_pit_timer()
349 flush_kthread_work(&ps->pit->expired); in create_pit_timer()
350 ps->period = interval; in create_pit_timer()
351 ps->is_periodic = is_period; in create_pit_timer()
353 ps->timer.function = pit_timer_fn; in create_pit_timer()
354 ps->kvm = ps->pit->kvm; in create_pit_timer()
356 atomic_set(&ps->pending, 0); in create_pit_timer()
357 ps->irq_ack = 1; in create_pit_timer()
364 if (ps->is_periodic) { in create_pit_timer()
367 if (ps->period < min_period) { in create_pit_timer()
371 ps->period, min_period); in create_pit_timer()
372 ps->period = min_period; in create_pit_timer()
376 hrtimer_start(&ps->timer, ktime_add_ns(ktime_get(), interval), in create_pit_timer()
382 struct kvm_kpit_state *ps = &kvm->arch.vpit->pit_state; in pit_load_count() local
384 WARN_ON(!mutex_is_locked(&ps->lock)); in pit_load_count()
395 ps->channels[channel].count = val; in pit_load_count()
398 ps->channels[channel].count_load_time = ktime_get(); in pit_load_count()
404 switch (ps->channels[0].mode) { in pit_load_count()