summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath/if_ath_rx_edma.c
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2012-11-08 18:11:31 +0000
committeradrian <adrian@FreeBSD.org>2012-11-08 18:11:31 +0000
commit2092e733094d0625768a248a7322b6457b81ae8f (patch)
tree5748256693582a5156ed3a762f0252b6854672b2 /sys/dev/ath/if_ath_rx_edma.c
parent58a78bc1d751c4b99a36f956bf35766de093ab59 (diff)
downloadFreeBSD-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.c11
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;
OpenPOWER on IntegriCloud