summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkleink <kleink@NetBSD.org>2005-01-13 23:57:04 +0000
committerkleink <kleink@NetBSD.org>2005-01-13 23:57:04 +0000
commitdb5b1f2fa2c6de308cbf09df08070b841d9e0626 (patch)
tree9548e43e3c28062f0140ad8156555586d0f78146
parent4880e8363876ff5994168406cddb4251ea4d2278 (diff)
Pass the interrupt swizzle down to the platforms' fixup functions.
N.B. Only using it on the ulmb60xa for now.
-rw-r--r--sys/arch/prep/include/platform.h6
-rw-r--r--sys/arch/prep/pci/pci_machdep.c4
-rw-r--r--sys/arch/prep/prep/ibm_6015.c6
-rw-r--r--sys/arch/prep/prep/ibm_6040.c8
-rw-r--r--sys/arch/prep/prep/ibm_6050.c8
-rw-r--r--sys/arch/prep/prep/ibm_7043_140.c8
-rw-r--r--sys/arch/prep/prep/ibm_7248.c8
-rw-r--r--sys/arch/prep/prep/mot_ulmb60xa.c49
-rw-r--r--sys/arch/prep/prep/platform.c6
9 files changed, 52 insertions, 51 deletions
diff --git a/sys/arch/prep/include/platform.h b/sys/arch/prep/include/platform.h
index 635ba9fc19e..3870e2fab79 100644
--- a/sys/arch/prep/include/platform.h
+++ b/sys/arch/prep/include/platform.h
@@ -1,4 +1,4 @@
-/* $NetBSD: platform.h,v 1.8 2004/06/26 21:51:04 kleink Exp $ */
+/* $NetBSD: platform.h,v 1.9 2005/01/13 23:57:04 kleink Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@ struct platform {
const char *model;
int (*match)(struct platform *);
void (*pci_get_chipset_tag)(pci_chipset_tag_t);
- void (*pci_intr_fixup)(int, int, int *);
+ void (*pci_intr_fixup)(int, int, int, int *);
void (*init_intr)(void);
void (*cpu_setup)(struct device *);
void (*reset)(void);
@@ -65,7 +65,7 @@ extern const char *obiodevs_nodev[];
int ident_platform(void);
int platform_generic_match(struct platform *);
-void pci_intr_nofixup(int, int, int *);
+void pci_intr_nofixup(int, int, int, int *);
void cpu_setup_unknown(struct device *);
void reset_unknown(void);
void reset_prep_generic(void);
diff --git a/sys/arch/prep/pci/pci_machdep.c b/sys/arch/prep/pci/pci_machdep.c
index 2d3e5e03812..49496a8b075 100644
--- a/sys/arch/prep/pci/pci_machdep.c
+++ b/sys/arch/prep/pci/pci_machdep.c
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.18 2003/07/15 02:54:51 lukem Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.19 2005/01/13 23:57:04 kleink Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -192,7 +192,7 @@ prep_pci_conf_interrupt(void *v, int bus, int dev, int pin,
int swiz, int *iline)
{
- (*platform->pci_intr_fixup)(bus, dev, iline);
+ (*platform->pci_intr_fixup)(bus, dev, swiz, iline);
}
int
diff --git a/sys/arch/prep/prep/ibm_6015.c b/sys/arch/prep/prep/ibm_6015.c
index 83fbc8d2725..0f5433b957b 100644
--- a/sys/arch/prep/prep/ibm_6015.c
+++ b/sys/arch/prep/prep/ibm_6015.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ibm_6015.c,v 1.1 2004/06/26 21:51:04 kleink Exp $ */
+/* $NetBSD: ibm_6015.c,v 1.2 2005/01/13 23:57:04 kleink Exp $ */
/*-
* Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -41,7 +41,7 @@
#include <machine/intr.h>
#include <machine/platform.h>
-void pci_intr_fixup_ibm_6015(int, int, int *);
+void pci_intr_fixup_ibm_6015(int, int, int, int *);
struct platform platform_ibm_6015 = {
"IBM PPS Model 6015", /* model */
@@ -55,7 +55,7 @@ struct platform platform_ibm_6015 = {
};
void
-pci_intr_fixup_ibm_6015(int bus, int dev, int *line)
+pci_intr_fixup_ibm_6015(int bus, int dev, int swiz, int *line)
{
if (bus != 0)
return;
diff --git a/sys/arch/prep/prep/ibm_6040.c b/sys/arch/prep/prep/ibm_6040.c
index 345a2f5579a..38327b27973 100644
--- a/sys/arch/prep/prep/ibm_6040.c
+++ b/sys/arch/prep/prep/ibm_6040.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ibm_6040.c,v 1.3 2003/07/15 02:54:52 lukem Exp $ */
+/* $NetBSD: ibm_6040.c,v 1.4 2005/01/13 23:57:04 kleink Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibm_6040.c,v 1.3 2003/07/15 02:54:52 lukem Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ibm_6040.c,v 1.4 2005/01/13 23:57:04 kleink Exp $");
#include <sys/param.h>
@@ -45,7 +45,7 @@ __KERNEL_RCSID(0, "$NetBSD: ibm_6040.c,v 1.3 2003/07/15 02:54:52 lukem Exp $");
#include <machine/platform.h>
/*
-static void pci_intr_fixup_ibm_6040(int, int, int *);
+static void pci_intr_fixup_ibm_6040(int, int, int, int *);
*/
static const char *obiodevs_ibm_6040[] = {
@@ -56,7 +56,7 @@ struct platform platform_ibm_6040 = {
"IBM PPS Model 6040 (E)", /* model */
platform_generic_match, /* match */
prep_pci_get_chipset_tag_indirect, /* pci_get_chipset_tag */
- pci_intr_nofixup, /* pci_intr_fixup */
+ pci_intr_nofixup, /* pci_intr_fixup */
init_intr_ivr, /* init_intr */
cpu_setup_ibm_generic, /* cpu_setup */
reset_prep_generic, /* reset */
diff --git a/sys/arch/prep/prep/ibm_6050.c b/sys/arch/prep/prep/ibm_6050.c
index dacf9d42071..3336a0c3e1d 100644
--- a/sys/arch/prep/prep/ibm_6050.c
+++ b/sys/arch/prep/prep/ibm_6050.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ibm_6050.c,v 1.7 2003/07/15 02:54:52 lukem Exp $ */
+/* $NetBSD: ibm_6050.c,v 1.8 2005/01/13 23:57:04 kleink Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -37,14 +37,14 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibm_6050.c,v 1.7 2003/07/15 02:54:52 lukem Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ibm_6050.c,v 1.8 2005/01/13 23:57:04 kleink Exp $");
#include <sys/param.h>
#include <machine/intr.h>
#include <machine/platform.h>
-static void pci_intr_fixup_ibm_6050(int, int, int *);
+static void pci_intr_fixup_ibm_6050(int, int, int, int *);
static const char *obiodevs_ibm_6050[] = {
"wdc",
@@ -63,7 +63,7 @@ struct platform platform_ibm_6050 = {
};
static void
-pci_intr_fixup_ibm_6050(int bus, int dev, int *line)
+pci_intr_fixup_ibm_6050(int bus, int dev, int swiz, int *line)
{
if (bus != 0)
return;
diff --git a/sys/arch/prep/prep/ibm_7043_140.c b/sys/arch/prep/prep/ibm_7043_140.c
index 744f2fca278..74377624b32 100644
--- a/sys/arch/prep/prep/ibm_7043_140.c
+++ b/sys/arch/prep/prep/ibm_7043_140.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ibm_7043_140.c,v 1.2 2003/07/15 02:54:52 lukem Exp $ */
+/* $NetBSD: ibm_7043_140.c,v 1.3 2005/01/13 23:57:04 kleink Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibm_7043_140.c,v 1.2 2003/07/15 02:54:52 lukem Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ibm_7043_140.c,v 1.3 2005/01/13 23:57:04 kleink Exp $");
#include "opt_openpic.h"
#if !defined(OPENPIC)
@@ -58,7 +58,7 @@ __KERNEL_RCSID(0, "$NetBSD: ibm_7043_140.c,v 1.2 2003/07/15 02:54:52 lukem Exp $
#include <dev/pci/pcireg.h>
#include <dev/pci/pcidevs.h>
-void pci_intr_fixup_ibm_7043_140(int, int, int *);
+void pci_intr_fixup_ibm_7043_140(int, int, int, int *);
void init_intr_mpic(void);
struct platform platform_ibm_7043_140 = {
@@ -73,7 +73,7 @@ struct platform platform_ibm_7043_140 = {
};
void
-pci_intr_fixup_ibm_7043_140(int bus, int dev, int *line)
+pci_intr_fixup_ibm_7043_140(int bus, int dev, int swiz, int *line)
{
if (*line >= 1 && *line < OPENPIC_INTR_NUM - 3)
diff --git a/sys/arch/prep/prep/ibm_7248.c b/sys/arch/prep/prep/ibm_7248.c
index 3b95a916c48..14abe46d62d 100644
--- a/sys/arch/prep/prep/ibm_7248.c
+++ b/sys/arch/prep/prep/ibm_7248.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ibm_7248.c,v 1.7 2003/07/15 02:54:52 lukem Exp $ */
+/* $NetBSD: ibm_7248.c,v 1.8 2005/01/13 23:57:04 kleink Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -37,14 +37,14 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibm_7248.c,v 1.7 2003/07/15 02:54:52 lukem Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ibm_7248.c,v 1.8 2005/01/13 23:57:04 kleink Exp $");
#include <sys/param.h>
#include <machine/intr.h>
#include <machine/platform.h>
-static void pci_intr_fixup_ibm_7248(int, int, int *);
+static void pci_intr_fixup_ibm_7248(int, int, int, int *);
struct platform platform_ibm_7248 = {
"IBM PPS Model 7248 (E)", /* model */
@@ -58,7 +58,7 @@ struct platform platform_ibm_7248 = {
};
static void
-pci_intr_fixup_ibm_7248(int bus, int dev, int *line)
+pci_intr_fixup_ibm_7248(int bus, int dev, int swiz, int *line)
{
if (bus != 0)
return;
diff --git a/sys/arch/prep/prep/mot_ulmb60xa.c b/sys/arch/prep/prep/mot_ulmb60xa.c
index bf2eea62908..6ba9ce6103f 100644
--- a/sys/arch/prep/prep/mot_ulmb60xa.c
+++ b/sys/arch/prep/prep/mot_ulmb60xa.c
@@ -1,7 +1,7 @@
-/* $NetBSD: mot_ulmb60xa.c,v 1.7 2003/07/15 02:54:52 lukem Exp $ */
+/* $NetBSD: mot_ulmb60xa.c,v 1.8 2005/01/13 23:57:04 kleink Exp $ */
/*-
- * Copyright (c) 2002 The NetBSD Foundation, Inc.
+ * Copyright (c) 2002, 2005 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mot_ulmb60xa.c,v 1.7 2003/07/15 02:54:52 lukem Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mot_ulmb60xa.c,v 1.8 2005/01/13 23:57:04 kleink Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -75,7 +75,7 @@ __KERNEL_RCSID(0, "$NetBSD: mot_ulmb60xa.c,v 1.7 2003/07/15 02:54:52 lukem Exp $
static int mot_ulmb60xa_match(struct platform *);
-static void pci_intr_fixup_mot_ulmb60xa(int, int, int *);
+static void pci_intr_fixup_mot_ulmb60xa(int, int, int, int *);
struct platform platform_mot_ulmb60xa = {
"BULL ESTRELLA (e0) (e0)", /* model */ /* XXX */
@@ -107,27 +107,28 @@ mot_ulmb60xa_match(struct platform *p)
}
static void
-pci_intr_fixup_mot_ulmb60xa(int bus, int dev, int *line)
+pci_intr_fixup_mot_ulmb60xa(int bus, int dev, int swiz, int *line)
{
- if (bus != 0)
- return;
-
- switch (dev) {
- case 12: /* NCR 53c810 */
- *line = 11;
- break;
- case 14: /* DEC 21440 */
- *line = 9;
- break;
- case 16: /* Slot #1 */
- *line = 9;
- break;
- case 17: /* Slot #2 */
- *line = 9;
- break;
- case 18: /* Slot #3 */
- *line = 11;
- break;
+ if (bus == 0) {
+ switch (dev) {
+ case 12: /* NCR 53c810 */
+ *line = 11;
+ break;
+ case 14: /* DEC 21440 */
+ *line = 9;
+ break;
+ case 16: /* Slot #1 */
+ *line = 9;
+ break;
+ case 17: /* Slot #2 */
+ *line = 9;
+ break;
+ case 18: /* Slot #3 */
+ *line = 11;
+ break;
+ }
+ } else {
+ *line = 9 + ((swiz + dev + 0) & 2);
}
}
diff --git a/sys/arch/prep/prep/platform.c b/sys/arch/prep/prep/platform.c
index 0434a911605..b538424c933 100644
--- a/sys/arch/prep/prep/platform.c
+++ b/sys/arch/prep/prep/platform.c
@@ -1,4 +1,4 @@
-/* $NetBSD: platform.c,v 1.9 2003/07/15 02:54:53 lukem Exp $ */
+/* $NetBSD: platform.c,v 1.10 2005/01/13 23:57:04 kleink Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: platform.c,v 1.9 2003/07/15 02:54:53 lukem Exp $");
+__KERNEL_RCSID(0, "$NetBSD: platform.c,v 1.10 2005/01/13 23:57:04 kleink Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -114,7 +114,7 @@ platform_generic_match(struct platform *p)
/* ARGUSED */
void
-pci_intr_nofixup(int busno, int device, int *intr)
+pci_intr_nofixup(int busno, int device, int swiz, int *intr)
{
}