Make nexus understand the new INTR_ flags, mainly INTR_ENTROPY.
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 23 Feb 2004 21:23:42 +0000 (21:23 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 23 Feb 2004 21:23:42 +0000 (21:23 +0000)
Fixes the: mpt, aac, amr, mlx, and twe drivers.

Reported-by: David Rhodus <drhodus@machdep.com>
sys/i386/i386/nexus.c
sys/platform/pc32/i386/nexus.c
sys/sys/bus.h

index 2cc882b..697d9b3 100644 (file)
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/i386/nexus.c,v 1.26.2.10 2003/02/22 13:16:45 imp Exp $
- * $DragonFly: src/sys/i386/i386/Attic/nexus.c,v 1.8 2004/02/21 19:12:39 joerg Exp $
+ * $DragonFly: src/sys/i386/i386/Attic/nexus.c,v 1.9 2004/02/23 21:23:42 dillon Exp $
  */
 
 /*
@@ -533,7 +533,7 @@ nexus_setup_intr(device_t bus, device_t child, struct resource *irq,
                icflags = INTR_EXCL;
 
        driver = device_get_driver(child);
-       switch (flags & ~INTR_FAST) {
+       switch (flags & INTR_TYPE_MASK) {
        case INTR_TYPE_AV:
        case INTR_TYPE_TTY:
                mask = &tty_imask;
@@ -547,6 +547,10 @@ nexus_setup_intr(device_t bus, device_t child, struct resource *irq,
        case INTR_TYPE_CAM:
                mask = &cam_imask;
                break;
+       case INTR_TYPE_CLK:
+               mask = 0;
+               printf("nexus: Warning: do not know what imask to use for INTR_TYPE_CLK\n");
+               break;
        case INTR_TYPE_MISC:
                mask = 0;
                break;
index c7861da..b762283 100644 (file)
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/i386/nexus.c,v 1.26.2.10 2003/02/22 13:16:45 imp Exp $
- * $DragonFly: src/sys/platform/pc32/i386/nexus.c,v 1.8 2004/02/21 19:12:39 joerg Exp $
+ * $DragonFly: src/sys/platform/pc32/i386/nexus.c,v 1.9 2004/02/23 21:23:42 dillon Exp $
  */
 
 /*
@@ -533,7 +533,7 @@ nexus_setup_intr(device_t bus, device_t child, struct resource *irq,
                icflags = INTR_EXCL;
 
        driver = device_get_driver(child);
-       switch (flags & ~INTR_FAST) {
+       switch (flags & INTR_TYPE_MASK) {
        case INTR_TYPE_AV:
        case INTR_TYPE_TTY:
                mask = &tty_imask;
@@ -547,6 +547,10 @@ nexus_setup_intr(device_t bus, device_t child, struct resource *irq,
        case INTR_TYPE_CAM:
                mask = &cam_imask;
                break;
+       case INTR_TYPE_CLK:
+               mask = 0;
+               printf("nexus: Warning: do not know what imask to use for INTR_TYPE_CLK\n");
+               break;
        case INTR_TYPE_MISC:
                mask = 0;
                break;
index 1c21d92..02fe870 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/sys/bus.h,v 1.30.2.4 2002/10/10 15:13:33 jhb Exp $
- * $DragonFly: src/sys/sys/bus.h,v 1.7 2004/02/21 06:37:01 dillon Exp $
+ * $DragonFly: src/sys/sys/bus.h,v 1.8 2004/02/23 21:23:41 dillon Exp $
  */
 
 #ifndef _SYS_BUS_H_
@@ -66,6 +66,10 @@ enum intr_type {
     INTR_ENTROPY = 1024
 };
 
+#define INTR_TYPE_MASK (INTR_TYPE_TTY|INTR_TYPE_BIO|INTR_TYPE_NET|\
+                        INTR_TYPE_CAM|INTR_TYPE_MISC|INTR_TYPE_CLK|\
+                        INTR_TYPE_AV)
+
 enum intr_trigger {
     INTR_TRIGGER_CONFORM = 0,
     INTR_TRIGGER_EDGE = 1,