Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ath/if_ath_rx_edma.c
Show First 20 Lines • Show All 573 Lines • ▼ Show 20 Lines | ath_edma_recv_proc_deferred_queue(struct ath_softc *sc, HAL_RX_QUEUE qtype, | ||||
return (ngood); | return (ngood); | ||||
} | } | ||||
static void | static void | ||||
ath_edma_recv_tasklet(void *arg, int npending) | ath_edma_recv_tasklet(void *arg, int npending) | ||||
{ | { | ||||
struct ath_softc *sc = (struct ath_softc *) arg; | struct ath_softc *sc = (struct ath_softc *) arg; | ||||
struct ifnet *ifp = sc->sc_ifp; | |||||
#ifdef IEEE80211_SUPPORT_SUPERG | #ifdef IEEE80211_SUPPORT_SUPERG | ||||
struct ieee80211com *ic = ifp->if_l2com; | struct ieee80211com *ic = &sc->sc_ic; | ||||
#endif | #endif | ||||
DPRINTF(sc, ATH_DEBUG_EDMA_RX, "%s: called; npending=%d\n", | DPRINTF(sc, ATH_DEBUG_EDMA_RX, "%s: called; npending=%d\n", | ||||
__func__, | __func__, | ||||
npending); | npending); | ||||
ATH_PCU_LOCK(sc); | ATH_PCU_LOCK(sc); | ||||
if (sc->sc_inreset_cnt > 0) { | if (sc->sc_inreset_cnt > 0) { | ||||
Show All 19 Lines | #endif | ||||
* XXX: If we read the tsf/channoise here and then pass it in, | * XXX: If we read the tsf/channoise here and then pass it in, | ||||
* we could restore the power state before processing | * we could restore the power state before processing | ||||
* the deferred queue. | * the deferred queue. | ||||
*/ | */ | ||||
ATH_LOCK(sc); | ATH_LOCK(sc); | ||||
ath_power_restore_power_state(sc); | ath_power_restore_power_state(sc); | ||||
ATH_UNLOCK(sc); | ATH_UNLOCK(sc); | ||||
/* XXX inside IF_LOCK ? */ | |||||
if ((ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0) { | |||||
#ifdef IEEE80211_SUPPORT_SUPERG | #ifdef IEEE80211_SUPPORT_SUPERG | ||||
ieee80211_ff_age_all(ic, 100); | ieee80211_ff_age_all(ic, 100); | ||||
#endif | #endif | ||||
if (! IFQ_IS_EMPTY(&ifp->if_snd)) | |||||
ath_tx_kick(sc); | |||||
} | |||||
if (ath_dfs_tasklet_needed(sc, sc->sc_curchan)) | if (ath_dfs_tasklet_needed(sc, sc->sc_curchan)) | ||||
taskqueue_enqueue(sc->sc_tq, &sc->sc_dfstask); | taskqueue_enqueue(sc->sc_tq, &sc->sc_dfstask); | ||||
ATH_PCU_LOCK(sc); | ATH_PCU_LOCK(sc); | ||||
sc->sc_rxproc_cnt--; | sc->sc_rxproc_cnt--; | ||||
ATH_PCU_UNLOCK(sc); | ATH_PCU_UNLOCK(sc); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 378 Lines • Show Last 20 Lines |