summaryrefslogtreecommitdiff
path: root/sys/arch/powerpc/pci
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2001-08-17 22:26:59 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2001-08-17 22:26:59 +0000
commit5f794f8c1c7a349faa97c6ef092a96fcf48ca094 (patch)
treee2511d92dc642fc35e0925f4f7f3681fafc8f75f /sys/arch/powerpc/pci
parent0c3296d28b7e353e842dc384702aebc7653387c5 (diff)
provide a way to get the number used for irq line, not only a string
representation, this is needed for devices like cbb which pass the interrupt line down to the cardbus attachment and not getting the right line before pci_intr_map() has done it's dirty deed. tested on i386 by jason@, compiles on alpha by art@. ppc and mveppc are to be test-compiled, but should work (;
Diffstat (limited to 'sys/arch/powerpc/pci')
-rw-r--r--sys/arch/powerpc/pci/mpcpcibus.c13
-rw-r--r--sys/arch/powerpc/pci/pci_machdep.h3
2 files changed, 14 insertions, 2 deletions
diff --git a/sys/arch/powerpc/pci/mpcpcibus.c b/sys/arch/powerpc/pci/mpcpcibus.c
index 36ede0f3477..6cd085d9ac7 100644
--- a/sys/arch/powerpc/pci/mpcpcibus.c
+++ b/sys/arch/powerpc/pci/mpcpcibus.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mpcpcibus.c,v 1.32 2001/07/09 02:51:05 mickey Exp $ */
+/* $OpenBSD: mpcpcibus.c,v 1.33 2001/08/17 22:26:58 mickey Exp $ */
/*
* Copyright (c) 1997 Per Fogelstrom
@@ -77,6 +77,7 @@ void mpc_conf_write __P((void *, pcitag_t, int, pcireg_t));
int mpc_intr_map __P((void *, pcitag_t, int, int, pci_intr_handle_t *));
const char *mpc_intr_string __P((void *, pci_intr_handle_t));
+int mpc_intr_line __P((void *, pci_intr_handle_t));
void *mpc_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *, char *));
void mpc_intr_disestablish __P((void *, void *));
@@ -274,6 +275,7 @@ mpcpcibrattach(parent, self, aux)
lcp->lc_pc.pc_intr_v = lcp;
lcp->lc_pc.pc_intr_map = mpc_intr_map;
lcp->lc_pc.pc_intr_string = mpc_intr_string;
+ lcp->lc_pc.pc_intr_line = mpc_intr_line;
lcp->lc_pc.pc_intr_establish = mpc_intr_establish;
lcp->lc_pc.pc_intr_disestablish = mpc_intr_disestablish;
@@ -483,6 +485,7 @@ mpcpcibrattach(parent, self, aux)
lcp->lc_pc.pc_intr_v = lcp;
lcp->lc_pc.pc_intr_map = mpc_intr_map;
lcp->lc_pc.pc_intr_string = mpc_intr_string;
+ lcp->lc_pc.pc_intr_line = mpc_intr_line;
lcp->lc_pc.pc_intr_establish = mpc_intr_establish;
lcp->lc_pc.pc_intr_disestablish = mpc_intr_disestablish;
@@ -955,6 +958,14 @@ mpc_intr_string(lcv, ih)
return(str);
}
+int
+mpc_intr_line(lcv, ih)
+ void *lcv;
+ pci_intr_handle_t ih;
+{
+ return (ih);
+}
+
void *
mpc_intr_establish(lcv, ih, level, func, arg, name)
void *lcv;
diff --git a/sys/arch/powerpc/pci/pci_machdep.h b/sys/arch/powerpc/pci/pci_machdep.h
index 6ff493a196c..2961afb9a10 100644
--- a/sys/arch/powerpc/pci/pci_machdep.h
+++ b/sys/arch/powerpc/pci/pci_machdep.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_machdep.h,v 1.7 2001/07/09 02:26:05 mickey Exp $ */
+/* $OpenBSD: pci_machdep.h,v 1.8 2001/08/17 22:26:58 mickey Exp $ */
/*
* Copyright (c) 1996 Carnegie-Mellon University.
@@ -57,6 +57,7 @@ struct ppc_pci_chipset {
int (*pc_intr_map) __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *(*pc_intr_string) __P((void *, pci_intr_handle_t));
+ int (*pc_intr_line) __P((void *, pci_intr_handle_t));
void *(*pc_intr_establish) __P((void *, pci_intr_handle_t,
int, int (*)(void *), void *, char *));
void (*pc_intr_disestablish) __P((void *, void *));