Module Name: src
Committed By: skrll
Date: Sat Jan 19 14:07:37 UTC 2013
Modified Files:
src/sys/dev/usb: dwc_otg.c dwc_otgvar.h
Log Message:
Don't count bit0 events in gintsts. bit 0 tells us which mode we're in
0 = device, 1 = host
To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/sys/dev/usb/dwc_otg.c
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/usb/dwc_otgvar.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/usb/dwc_otg.c
diff -u src/sys/dev/usb/dwc_otg.c:1.25 src/sys/dev/usb/dwc_otg.c:1.26
--- src/sys/dev/usb/dwc_otg.c:1.25 Sat Jan 19 07:41:51 2013
+++ src/sys/dev/usb/dwc_otg.c Sat Jan 19 14:07:37 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: dwc_otg.c,v 1.25 2013/01/19 07:41:51 skrll Exp $ */
+/* $NetBSD: dwc_otg.c,v 1.26 2013/01/19 14:07:37 skrll Exp $ */
/*-
* Copyright (c) 2012 Hans Petter Selasky. All rights reserved.
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dwc_otg.c,v 1.25 2013/01/19 07:41:51 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dwc_otg.c,v 1.26 2013/01/19 14:07:37 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -3389,8 +3389,8 @@ dwc_otg_interrupt(struct dwc_otg_softc *
status = DWC_OTG_READ_4(sc, DOTG_GINTSTS);
DWC_OTG_WRITE_4(sc, DOTG_GINTSTS, status);
- for (size_t i = 0; i < 32; i++) {
- if (status & (1<<i)) {
+ for (size_t i = DWC_OTG_INTRBITF; i < DWC_OTG_NINTRBITS; i++) {
+ if (status & (1 << i)) {
DOTG_EVCNT_INCR(sc->sc_ev_intr_bit[i]);
}
}
@@ -4119,8 +4119,11 @@ dwc_otg_device_done(usbd_xfer_handle xfe
usb_schedsoftintr(&sc->sc_bus);
}
+/*
+ * curmode is a mode indication bit 0 = device, 1 = host
+ */
static const char * const intnames[32] = {
- "curmod", "modemis", "otgint", "sof",
+ "curmode", "modemis", "otgint", "sof",
"rxflvl", "nptxfemp", "ginnakeff", "goutnakeff",
"ulpickint", "i2cint", "erlysusp", "usbsusp",
"usbrst", "enumdone", "isooutdrop", "eopf",
@@ -4185,7 +4188,7 @@ dwc_otg_init(struct dwc_otg_softc *sc)
evcnt_attach_dynamic(&sc->sc_ev_xferpoolput, EVCNT_TYPE_MISC,
NULL, xname, "xfer pool put");
- for (size_t i = 0; i < 32; i++) {
+ for (size_t i = DWC_OTG_INTRBITF; i < DWC_OTG_NINTRBITS; i++) {
evcnt_attach_dynamic(&sc->sc_ev_intr_bit[i], EVCNT_TYPE_INTR,
NULL, xname, intnames[i]);
}
Index: src/sys/dev/usb/dwc_otgvar.h
diff -u src/sys/dev/usb/dwc_otgvar.h:1.5 src/sys/dev/usb/dwc_otgvar.h:1.6
--- src/sys/dev/usb/dwc_otgvar.h:1.5 Sun Jan 13 15:21:47 2013
+++ src/sys/dev/usb/dwc_otgvar.h Sat Jan 19 14:07:37 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: dwc_otgvar.h,v 1.5 2013/01/13 15:21:47 skrll Exp $ */
+/* $NetBSD: dwc_otgvar.h,v 1.6 2013/01/19 14:07:37 skrll Exp $ */
/* $FreeBSD: src/sys/dev/usb/controller/dwc_otg.h,v 1.12 2012/09/27 15:23:38 hselasky Exp $ */
/*-
@@ -40,6 +40,16 @@
#define DWC_OTG_MAX_ENDPOINTS 16
#define DWC_OTG_HOST_TIMER_RATE 10 /* ms */
+#define DOTG_COUNTERS
+#ifdef DOTG_COUNTERS
+/*
+ * curmode (bit 0)is a mode indication bit 0 = device, 1 = host
+ */
+#define DWC_OTG_INTRBITF 1
+#define DWC_OTG_INTRBITL 31
+#define DWC_OTG_NINTRBITS 32
+#endif
+
struct dwc_otg_td;
struct dwc_otg_softc;
@@ -202,9 +212,8 @@ typedef struct dwc_otg_softc {
pool_cache_t sc_xferpool;
#ifdef DOTG_COUNTERS
-
struct evcnt sc_ev_intr;
- struct evcnt sc_ev_intr_bit[32];
+ struct evcnt sc_ev_intr_bit[DWC_OTG_NINTRBITS];
struct evcnt sc_ev_soft_intr;
struct evcnt sc_ev_work;