diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 2001-08-17 22:26:59 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 2001-08-17 22:26:59 +0000 |
commit | 5f794f8c1c7a349faa97c6ef092a96fcf48ca094 (patch) | |
tree | e2511d92dc642fc35e0925f4f7f3681fafc8f75f /sys/arch/powerpc/pci | |
parent | 0c3296d28b7e353e842dc384702aebc7653387c5 (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.c | 13 | ||||
-rw-r--r-- | sys/arch/powerpc/pci/pci_machdep.h | 3 |
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 *)); |