| 268 | } |
| 269 | |
| 270 | static int |
| 271 | mv_hardclock(void *arg) |
| 272 | { |
| 273 | struct mv_timer_softc *sc; |
| 274 | uint32_t irq_cause; |
| 275 | |
| 276 | irq_cause = read_cpu_ctrl(timer_softc->config->bridge_irq_cause); |
| 277 | irq_cause &= timer_softc->config->irq_timer0_clr; |
| 278 | write_cpu_ctrl(timer_softc->config->bridge_irq_cause, irq_cause); |
| 279 | |
| 280 | sc = (struct mv_timer_softc *)arg; |
| 281 | if (sc->et.et_active) |
| 282 | sc->et.et_event_cb(&sc->et, sc->et.et_arg); |
| 283 | |
| 284 | return (FILTER_HANDLED); |
| 285 | } |
| 286 | |
| 287 | static device_method_t mv_timer_methods[] = { |
| 288 | DEVMETHOD(device_probe, mv_timer_probe), |
nothing calls this directly
no test coverage detected