Lines Matching refs:ps

110 	struct kvm_kpit_state *ps = &kvm->arch.vpit->pit_state;  in __kpit_elapsed()  local
112 if (!ps->period) in __kpit_elapsed()
124 remaining = hrtimer_get_remaining(&ps->timer); in __kpit_elapsed()
125 elapsed = ps->period - ktime_to_ns(remaining); in __kpit_elapsed()
236 struct kvm_kpit_state *ps = container_of(kian, struct kvm_kpit_state, in kvm_pit_ack_irq() local
240 spin_lock(&ps->inject_lock); in kvm_pit_ack_irq()
241 value = atomic_dec_return(&ps->pending); in kvm_pit_ack_irq()
246 atomic_inc(&ps->pending); in kvm_pit_ack_irq()
247 else if (value > 0 && ps->reinject) in kvm_pit_ack_irq()
251 queue_kthread_work(&ps->pit->worker, &ps->pit->expired); in kvm_pit_ack_irq()
252 ps->irq_ack = 1; in kvm_pit_ack_irq()
253 spin_unlock(&ps->inject_lock); in kvm_pit_ack_irq()
283 struct kvm_kpit_state *ps = &pit->pit_state; in pit_do_work() local
289 spin_lock(&ps->inject_lock); in pit_do_work()
290 if (!ps->reinject) in pit_do_work()
292 else if (ps->irq_ack) { in pit_do_work()
293 ps->irq_ack = 0; in pit_do_work()
296 spin_unlock(&ps->inject_lock); in pit_do_work()
318 struct kvm_kpit_state *ps = container_of(data, struct kvm_kpit_state, timer); in pit_timer_fn() local
319 struct kvm_pit *pt = ps->kvm->arch.vpit; in pit_timer_fn()
321 if (ps->reinject) in pit_timer_fn()
322 atomic_inc(&ps->pending); in pit_timer_fn()
326 if (ps->is_periodic) { in pit_timer_fn()
327 hrtimer_add_expires_ns(&ps->timer, ps->period); in pit_timer_fn()
335 struct kvm_kpit_state *ps = &kvm->arch.vpit->pit_state; in create_pit_timer() local
338 if (!irqchip_in_kernel(kvm) || ps->flags & KVM_PIT_FLAGS_HPET_LEGACY) in create_pit_timer()
346 hrtimer_cancel(&ps->timer); in create_pit_timer()
347 flush_kthread_work(&ps->pit->expired); in create_pit_timer()
348 ps->period = interval; in create_pit_timer()
349 ps->is_periodic = is_period; in create_pit_timer()
351 ps->timer.function = pit_timer_fn; in create_pit_timer()
352 ps->kvm = ps->pit->kvm; in create_pit_timer()
354 atomic_set(&ps->pending, 0); in create_pit_timer()
355 ps->irq_ack = 1; in create_pit_timer()
362 if (ps->is_periodic) { in create_pit_timer()
365 if (ps->period < min_period) { in create_pit_timer()
369 ps->period, min_period); in create_pit_timer()
370 ps->period = min_period; in create_pit_timer()
374 hrtimer_start(&ps->timer, ktime_add_ns(ktime_get(), interval), in create_pit_timer()
380 struct kvm_kpit_state *ps = &kvm->arch.vpit->pit_state; in pit_load_count() local
382 WARN_ON(!mutex_is_locked(&ps->lock)); in pit_load_count()
393 ps->channels[channel].count = val; in pit_load_count()
396 ps->channels[channel].count_load_time = ktime_get(); in pit_load_count()
402 switch (ps->channels[0].mode) { in pit_load_count()