Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/acpica/acpi_hpet.c
Show First 20 Lines • Show All 239 Lines • ▼ Show 20 Lines | if (t->mode == TIMER_PERIODIC && (t->caps & HPET_TCAP_PER_INT)) { | ||||
t->caps &= ~HPET_TCNF_TYPE; | t->caps &= ~HPET_TCNF_TYPE; | ||||
bus_write_4(sc->mem_res, HPET_TIMER_CAP_CNF(t->num), | bus_write_4(sc->mem_res, HPET_TIMER_CAP_CNF(t->num), | ||||
t->caps); | t->caps); | ||||
bus_write_4(sc->mem_res, HPET_TIMER_COMPARATOR(t->num), | bus_write_4(sc->mem_res, HPET_TIMER_COMPARATOR(t->num), | ||||
t->next); | t->next); | ||||
} | } | ||||
now = bus_read_4(sc->mem_res, HPET_MAIN_COUNTER); | now = bus_read_4(sc->mem_res, HPET_MAIN_COUNTER); | ||||
if ((int32_t)(now - t->next + HPET_MIN_CYCLES) >= 0) { | if ((int32_t)(now - t->next + HPET_MIN_CYCLES) >= 0) { | ||||
fdiv *= 2; | if (__predict_false(fdiv *= 2) == 0) | ||||
fdiv = 1; | |||||
goto restart; | goto restart; | ||||
} | } | ||||
return (0); | return (0); | ||||
} | } | ||||
static int | static int | ||||
hpet_stop(struct eventtimer *et) | hpet_stop(struct eventtimer *et) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 755 Lines • Show Last 20 Lines |