summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorStefan Sperling <stsp@cvs.openbsd.org>2017-05-19 11:42:49 +0000
committerStefan Sperling <stsp@cvs.openbsd.org>2017-05-19 11:42:49 +0000
commit7f8f7c9af7e7052e9968dc2ed1b477cb61d129c3 (patch)
tree9fa73d44adb5fd50c489ab41de1433465dbda900 /sys/dev/ic
parent24ef1453340684961a82ae17005e9ba43aa6455d (diff)
Make monitor work with athn(4) on my 3T3R AR9380 device.
This card can now receive packets. Transmit is still broken and Kevin Lo reports that his 2T2R AR9380 device cannot receive yet.
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/ar9003.c6
-rw-r--r--sys/dev/ic/ar9003reg.h4
-rw-r--r--sys/dev/ic/athnreg.h4
3 files changed, 7 insertions, 7 deletions
diff --git a/sys/dev/ic/ar9003.c b/sys/dev/ic/ar9003.c
index ace7fd5935d..15a6173e16f 100644
--- a/sys/dev/ic/ar9003.c
+++ b/sys/dev/ic/ar9003.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ar9003.c,v 1.45 2017/03/08 12:02:41 mpi Exp $ */
+/* $OpenBSD: ar9003.c,v 1.46 2017/05/19 11:42:48 stsp Exp $ */
/*-
* Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
@@ -934,7 +934,7 @@ ar9003_rx_process(struct athn_softc *sc, int qid)
BUS_DMASYNC_POSTREAD);
ds = mtod(bf->bf_m, struct ar_rx_status *);
- if (!(ds->ds_status1 & AR_RXS1_DONE))
+ if (!(ds->ds_status11 & AR_RXS11_DONE))
return (EBUSY);
/* Check that it is a valid Rx status descriptor. */
@@ -1345,7 +1345,7 @@ ar9003_intr(struct athn_softc *sc)
#endif
if (intr & (AR_ISR_RXMINTR | AR_ISR_RXINTM))
ar9003_rx_intr(sc, ATHN_QID_LP);
- if (intr & (AR_ISR_LP_RXOK | AR_ISR_RXERR))
+ if (intr & (AR_ISR_LP_RXOK | AR_ISR_RXERR | AR_ISR_RXEOL))
ar9003_rx_intr(sc, ATHN_QID_LP);
if (intr & AR_ISR_HP_RXOK)
ar9003_rx_intr(sc, ATHN_QID_HP);
diff --git a/sys/dev/ic/ar9003reg.h b/sys/dev/ic/ar9003reg.h
index 8484a8e875f..769862def15 100644
--- a/sys/dev/ic/ar9003reg.h
+++ b/sys/dev/ic/ar9003reg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ar9003reg.h,v 1.8 2012/10/20 09:53:32 stsp Exp $ */
+/* $OpenBSD: ar9003reg.h,v 1.9 2017/05/19 11:42:48 stsp Exp $ */
/*-
* Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
@@ -1157,7 +1157,6 @@ struct ar_rx_status {
#define AR_RXI_DESC_ID_S 16
/* Bits for ds_status1. */
-#define AR_RXS1_DONE 0x00000001
#define AR_RXS1_RATE_M 0x000003fc
#define AR_RXS1_RATE_S 2
@@ -1175,6 +1174,7 @@ struct ar_rx_status {
#define AR_RXS5_RSSI_COMBINED_S 24
/* Bits for ds_status11. */
+#define AR_RXS11_DONE 0x00000001
#define AR_RXS11_FRAME_OK 0x00000002
#define AR_RXS11_CRC_ERR 0x00000004
#define AR_RXS11_DECRYPT_CRC_ERR 0x00000008
diff --git a/sys/dev/ic/athnreg.h b/sys/dev/ic/athnreg.h
index 45d72fea749..0ed85b15afa 100644
--- a/sys/dev/ic/athnreg.h
+++ b/sys/dev/ic/athnreg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: athnreg.h,v 1.19 2016/12/18 14:34:20 kettenis Exp $ */
+/* $OpenBSD: athnreg.h,v 1.20 2017/05/19 11:42:48 stsp Exp $ */
/*-
* Copyright (c) 2009 Damien Bergamini <damien.bergamini@free.fr>
@@ -253,7 +253,7 @@
/* Bits for AR_CR. */
-#define AR_CR_RXE 0x00000004
+#define AR_CR_RXE (AR_SREV_9380_20_OR_LATER(sc) ? 0x000c : 0x0004)
#define AR_CR_RXD 0x00000020
#define AR_CR_SWI 0x00000040