Lines Matching refs:pit
50 } pit;
100 if (!pc99_ltimer->pit.abs_time) {
105 uint64_t time = tsc_get_time(pc99_ltimer->pit.freq);
106 if (time > pc99_ltimer->pit.abs_time) {
108 pc99_ltimer->pit.abs_time = 0;
113 uint64_t ns = MIN(pc99_ltimer->pit.abs_time - time, PIT_MAX_NS);
117 return pit_set_timeout(&pc99_ltimer->pit.device, ns, false);
179 *time = tsc_get_time(pc99_ltimer->pit.freq);
212 pc99_ltimer->pit.abs_time = 0;
214 uint64_t time = tsc_get_time(pc99_ltimer->pit.freq);
218 pc99_ltimer->pit.abs_time = ns + time;
226 pc99_ltimer->pit.abs_time = ns;
237 int error = pit_set_timeout(&pc99_ltimer->pit.device, ns, type == TIMEOUT_PERIODIC);
252 pit_cancel_timeout(&pc99_ltimer->pit.device);
278 pit_cancel_timeout(&pc99_ltimer->pit.device);
344 /* if we fail to operate on an initialized pit then assume nothing is sane and abort */
411 pc99_ltimer->pit.freq = freq;
412 return pit_init(&pc99_ltimer->pit.device, ops.io_port_ops);
424 pc99_ltimer->pit.freq = tsc_calculate_frequency_pit(&pc99_ltimer->pit.device);
425 if (pc99_ltimer->pit.freq == 0) {
435 return pc99_ltimer->pit.freq;
450 /* HPET failed - use the pit */