Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/re/if_re.c
Show First 20 Lines • Show All 2,547 Lines • ▼ Show 20 Lines | re_intr(void *arg) | ||||
sc = arg; | sc = arg; | ||||
status = CSR_READ_2(sc, RL_ISR); | status = CSR_READ_2(sc, RL_ISR); | ||||
if (status == 0xFFFF || (status & RL_INTRS_CPLUS) == 0) | if (status == 0xFFFF || (status & RL_INTRS_CPLUS) == 0) | ||||
return (FILTER_STRAY); | return (FILTER_STRAY); | ||||
CSR_WRITE_2(sc, RL_IMR, 0); | CSR_WRITE_2(sc, RL_IMR, 0); | ||||
taskqueue_enqueue_fast(taskqueue_fast, &sc->rl_inttask); | taskqueue_enqueue(taskqueue_fast, &sc->rl_inttask); | ||||
return (FILTER_HANDLED); | return (FILTER_HANDLED); | ||||
} | } | ||||
static void | static void | ||||
re_int_task(void *arg, int npending) | re_int_task(void *arg, int npending) | ||||
{ | { | ||||
struct rl_softc *sc; | struct rl_softc *sc; | ||||
▲ Show 20 Lines • Show All 51 Lines • ▼ Show 20 Lines | #endif | ||||
} | } | ||||
if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) | if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) | ||||
re_start_locked(ifp); | re_start_locked(ifp); | ||||
RL_UNLOCK(sc); | RL_UNLOCK(sc); | ||||
if ((CSR_READ_2(sc, RL_ISR) & RL_INTRS_CPLUS) || rval) { | if ((CSR_READ_2(sc, RL_ISR) & RL_INTRS_CPLUS) || rval) { | ||||
taskqueue_enqueue_fast(taskqueue_fast, &sc->rl_inttask); | taskqueue_enqueue(taskqueue_fast, &sc->rl_inttask); | ||||
return; | return; | ||||
} | } | ||||
CSR_WRITE_2(sc, RL_IMR, RL_INTRS_CPLUS); | CSR_WRITE_2(sc, RL_IMR, RL_INTRS_CPLUS); | ||||
} | } | ||||
static void | static void | ||||
re_intr_msi(void *xsc) | re_intr_msi(void *xsc) | ||||
▲ Show 20 Lines • Show All 1,442 Lines • Show Last 20 Lines |