} else if (status & HAL_INT_MIB) { DPRINTF(ATH_DEBUG_INTR, ("%s: resetting MIB counters\n", __func__)); sc->sc_stats.ast_mib++; ath_hal_update_mib_counters(ah, &sc->sc_mib_stats);
ath_intr1(struct ath_softc *sc){	struct ieee80211com *ic = &sc->sc_ic;	struct ifnet *ifp = &ic->ic_if;	struct ath_hal *ah = sc->sc_ah;	HAL_INT status;	if (sc->sc_invalid) {		/*		 * The hardware is not ready/present, don't touch anything.		 * Note this can happen early on if the IRQ is shared.		 */		DPRINTF(ATH_DEBUG_ANY, ("%s: invalid; ignored\n", __func__));		return 0;	}	if (!ath_hal_is_intr_pending(ah))		/* shared irq, not for us */		return 0;	if ((ifp->if_flags & (IFF_RUNNING|IFF_UP)) != (IFF_RUNNING|IFF_UP)) {		DPRINTF(ATH_DEBUG_ANY, ("%s: if_flags 0x%x\n",		    __func__, ifp->if_flags));		ath_hal_get_isr(ah, &status);	/* clear ISR */		ath_hal_set_intr(ah, 0);		/* disable further intr's */		return 1; /* XXX */	}	ath_hal_get_isr(ah, &status);		/* NB: clears ISR too */	DPRINTF(ATH_DEBUG_INTR, ("%s: status 0x%x\n", __func__, status));	status &= sc->sc_imask;			/* discard unasked for bits */	if (status & HAL_INT_FATAL) {		sc->sc_stats.ast_hardware++;		ath_hal_set_intr(ah, 0);		/* disable intr's until reset */		ATH_TASK_RUN_OR_ENQUEUE(&sc->sc_fataltask);	} else if (status & HAL_INT_RXORN) {		sc->sc_stats.ast_rxorn++;		ath_hal_set_intr(ah, 0);		/* disable intr's until reset */		ATH_TASK_RUN_OR_ENQUEUE(&sc->sc_rxorntask);	} else {		if (status & HAL_INT_RXEOL) {			/*			 * NB: the hardware should re-read the link when			 *     RXE bit is written, but it doesn't work at			 *     least on older hardware revs.			 */			sc->sc_stats.ast_rxeol++;			sc->sc_rxlink = NULL;		}		if (status & HAL_INT_TXURN) {			sc->sc_stats.ast_txurn++;			/* bump tx trigger level */			ath_hal_update_tx_triglevel(ah, AH_TRUE);		}		if (status & HAL_INT_RX)			ATH_TASK_RUN_OR_ENQUEUE(&sc->sc_rxtask);		if (status & HAL_INT_TX)			ATH_TASK_RUN_OR_ENQUEUE(&sc->sc_txtask);		if (status & HAL_INT_SWBA)			ATH_TASK_RUN_OR_ENQUEUE(&sc->sc_swbatask);		if (status & HAL_INT_BMISS) {			sc->sc_stats.ast_bmiss++;			ATH_TASK_RUN_OR_ENQUEUE(&sc->sc_bmisstask);		}	}	return 1;}