Lines Matching refs:ps

86 	struct kvm_kpit_state *ps = &pit->pit_state;
88 if (!ps->period)
100 remaining = hrtimer_get_remaining(&ps->timer);
101 elapsed = ps->period - ktime_to_ns(remaining);
198 static inline struct kvm_pit *pit_state_to_pit(struct kvm_kpit_state *ps)
200 return container_of(ps, struct kvm_pit, pit_state);
205 struct kvm_kpit_state *ps = container_of(kian, struct kvm_kpit_state,
207 struct kvm_pit *pit = pit_state_to_pit(ps);
209 atomic_set(&ps->irq_ack, 1);
214 if (atomic_dec_if_positive(&ps->pending) > 0)
246 struct kvm_kpit_state *ps = &pit->pit_state;
248 if (atomic_read(&ps->reinject) && !atomic_xchg(&ps->irq_ack, 0))
270 struct kvm_kpit_state *ps = container_of(data, struct kvm_kpit_state, timer);
271 struct kvm_pit *pt = pit_state_to_pit(ps);
273 if (atomic_read(&ps->reinject))
274 atomic_inc(&ps->pending);
278 if (ps->is_periodic) {
279 hrtimer_add_expires_ns(&ps->timer, ps->period);
293 struct kvm_kpit_state *ps = &pit->pit_state;
296 if (atomic_read(&ps->reinject) == reinject)
302 * since it checks ps->irq_ack before kvm_set_irq()
309 /* The initial state is preserved while ps->reinject == 0. */
311 kvm_register_irq_ack_notifier(kvm, &ps->irq_ack_notifier);
315 kvm_unregister_irq_ack_notifier(kvm, &ps->irq_ack_notifier);
319 atomic_set(&ps->reinject, reinject);
324 struct kvm_kpit_state *ps = &pit->pit_state;
329 ps->flags & KVM_PIT_FLAGS_HPET_LEGACY)
337 hrtimer_cancel(&ps->timer);
339 ps->period = interval;
340 ps->is_periodic = is_period;
349 if (ps->is_periodic) {
352 if (ps->period < min_period) {
356 ps->period, min_period);
357 ps->period = min_period;
361 hrtimer_start(&ps->timer, ktime_add_ns(ktime_get(), interval),
367 struct kvm_kpit_state *ps = &pit->pit_state;
378 ps->channels[channel].count = val;
381 ps->channels[channel].count_load_time = ktime_get();
387 switch (ps->channels[0].mode) {