diff options
author | adrian <adrian@FreeBSD.org> | 2012-11-08 18:11:31 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2012-11-08 18:11:31 +0000 |
commit | 2092e733094d0625768a248a7322b6457b81ae8f (patch) | |
tree | 5748256693582a5156ed3a762f0252b6854672b2 /sys/dev/ath/if_ath_rx_edma.c | |
parent | 58a78bc1d751c4b99a36f956bf35766de093ab59 (diff) | |
download | FreeBSD-src-2092e733094d0625768a248a7322b6457b81ae8f.zip FreeBSD-src-2092e733094d0625768a248a7322b6457b81ae8f.tar.gz |
Add some hooks into the driver to attach, detach and record EDMA descriptor
events.
This is primarily for the TX EDMA and TX EDMA completion. I haven't yet
tied it into the EDMA RX path or the legacy TX/RX path.
Things that I don't quite like:
* Make the pointer type 'void' in ath_softc and have if_ath_alq*()
return a malloc'ed buffer. That would remove the need to include
if_ath_alq.h in if_athvar.h.
* The sysctl setup needs to be cleaned up.
Diffstat (limited to 'sys/dev/ath/if_ath_rx_edma.c')
-rw-r--r-- | sys/dev/ath/if_ath_rx_edma.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/dev/ath/if_ath_rx_edma.c b/sys/dev/ath/if_ath_rx_edma.c index 7110b74..dc7fd9a 100644 --- a/sys/dev/ath/if_ath_rx_edma.c +++ b/sys/dev/ath/if_ath_rx_edma.c @@ -117,6 +117,10 @@ __FBSDID("$FreeBSD$"); #include <dev/ath/if_ath_rx_edma.h> +#ifdef ATH_DEBUG_ALQ +#include <dev/ath/if_ath_alq.h> +#endif + /* * some general macros */ @@ -357,7 +361,12 @@ ath_edma_recv_proc_queue(struct ath_softc *sc, HAL_RX_QUEUE qtype, #ifdef ATH_DEBUG if (sc->sc_debug & ATH_DEBUG_RECV_DESC) ath_printrxbuf(sc, bf, 0, bf->bf_rxstatus == HAL_OK); -#endif +#endif /* ATH_DEBUG */ +#ifdef ATH_DEBUG_ALQ + if (if_ath_alq_checkdebug(&sc->sc_alq, ATH_ALQ_EDMA_RXSTATUS)) + if_ath_alq_post(&sc->sc_alq, ATH_ALQ_EDMA_RXSTATUS, + sc->sc_rx_statuslen, (char *) ds); +#endif /* ATH_DEBUG */ if (bf->bf_rxstatus == HAL_EINPROGRESS) break; |