Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ral/rt2860.c
Show First 20 Lines • Show All 1,386 Lines • ▼ Show 20 Lines | rt2860_gp_intr(struct rt2860_softc *sc) | ||||
if (vap->iv_state == IEEE80211_S_RUN) | if (vap->iv_state == IEEE80211_S_RUN) | ||||
rt2860_updatestats(sc); | rt2860_updatestats(sc); | ||||
} | } | ||||
void | void | ||||
rt2860_intr(void *arg) | rt2860_intr(void *arg) | ||||
{ | { | ||||
struct epoch_tracker et; | |||||
struct rt2860_softc *sc = arg; | struct rt2860_softc *sc = arg; | ||||
uint32_t r; | uint32_t r; | ||||
RAL_LOCK(sc); | RAL_LOCK(sc); | ||||
r = RAL_READ(sc, RT2860_INT_STATUS); | r = RAL_READ(sc, RT2860_INT_STATUS); | ||||
if (__predict_false(r == 0xffffffff)) { | if (__predict_false(r == 0xffffffff)) { | ||||
RAL_UNLOCK(sc); | RAL_UNLOCK(sc); | ||||
Show All 11 Lines | if (r & RT2860_TX_RX_COHERENT) | ||||
rt2860_intr_coherent(sc); | rt2860_intr_coherent(sc); | ||||
if (r & RT2860_MAC_INT_2) /* TX status */ | if (r & RT2860_MAC_INT_2) /* TX status */ | ||||
rt2860_drain_stats_fifo(sc); | rt2860_drain_stats_fifo(sc); | ||||
if (r & RT2860_TX_DONE_INT5) | if (r & RT2860_TX_DONE_INT5) | ||||
rt2860_tx_intr(sc, 5); | rt2860_tx_intr(sc, 5); | ||||
if (r & RT2860_RX_DONE_INT) | if (r & RT2860_RX_DONE_INT) { | ||||
NET_EPOCH_ENTER(et); | |||||
rt2860_rx_intr(sc); | rt2860_rx_intr(sc); | ||||
NET_EPOCH_EXIT(et); | |||||
} | |||||
if (r & RT2860_TX_DONE_INT4) | if (r & RT2860_TX_DONE_INT4) | ||||
rt2860_tx_intr(sc, 4); | rt2860_tx_intr(sc, 4); | ||||
if (r & RT2860_TX_DONE_INT3) | if (r & RT2860_TX_DONE_INT3) | ||||
rt2860_tx_intr(sc, 3); | rt2860_tx_intr(sc, 3); | ||||
if (r & RT2860_TX_DONE_INT2) | if (r & RT2860_TX_DONE_INT2) | ||||
▲ Show 20 Lines • Show All 2,912 Lines • Show Last 20 Lines |