diff options
| author | kleink <kleink@NetBSD.org> | 2005-01-13 23:57:04 +0000 |
|---|---|---|
| committer | kleink <kleink@NetBSD.org> | 2005-01-13 23:57:04 +0000 |
| commit | db5b1f2fa2c6de308cbf09df08070b841d9e0626 (patch) | |
| tree | 9548e43e3c28062f0140ad8156555586d0f78146 | |
| parent | 4880e8363876ff5994168406cddb4251ea4d2278 (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.h | 6 | ||||
| -rw-r--r-- | sys/arch/prep/pci/pci_machdep.c | 4 | ||||
| -rw-r--r-- | sys/arch/prep/prep/ibm_6015.c | 6 | ||||
| -rw-r--r-- | sys/arch/prep/prep/ibm_6040.c | 8 | ||||
| -rw-r--r-- | sys/arch/prep/prep/ibm_6050.c | 8 | ||||
| -rw-r--r-- | sys/arch/prep/prep/ibm_7043_140.c | 8 | ||||
| -rw-r--r-- | sys/arch/prep/prep/ibm_7248.c | 8 | ||||
| -rw-r--r-- | sys/arch/prep/prep/mot_ulmb60xa.c | 49 | ||||
| -rw-r--r-- | sys/arch/prep/prep/platform.c | 6 |
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) { } |
