diff options
-rw-r--r-- | share/man/man9/Makefile | 5 | ||||
-rw-r--r-- | share/man/man9/pci_intr_map.9 | 20 |
2 files changed, 19 insertions, 6 deletions
diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 54e35a34e43..bd56daca2f2 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.165 2011/04/05 21:37:07 deraadt Exp $ +# $OpenBSD: Makefile,v 1.166 2011/05/21 21:29:20 kettenis Exp $ # $NetBSD: Makefile,v 1.4 1996/01/09 03:23:01 thorpej Exp $ # Makefile for section 9 (kernel function and variable) manual pages. @@ -228,7 +228,8 @@ MLINKS+=mutex.9 mtx_enter_try.9 MLINKS+=namei.9 lookup.9 namei.9 relookup.9 namei.9 NDINIT.9 MLINKS+=pci_conf_read.9 pci_conf_write.9 pci_conf_read.9 pci_make_tag.9 \ pci_conf_read.9 pci_decompose_tag.9 -MLINKS+=pci_intr_map.9 pci_intr_string.9 pci_intr_map.9 pci_intr_line.9 \ +MLINKS+=pci_intr_map.8 pci_intr_map_msi.9 pci_intr_map.9 pci_intr_string.9 \ + pci_intr_map.9 pci_intr_line.9 \ pci_intr_map.9 pci_intr_establish.9 \ pci_intr_map.9 pci_intr_disestablish.9 MLINKS+=pfind.9 pgfind.9 diff --git a/share/man/man9/pci_intr_map.9 b/share/man/man9/pci_intr_map.9 index dda89e70782..c5fac9f76d5 100644 --- a/share/man/man9/pci_intr_map.9 +++ b/share/man/man9/pci_intr_map.9 @@ -1,4 +1,4 @@ -.\" $OpenBSD: pci_intr_map.9,v 1.10 2010/03/26 19:30:40 jmc Exp $ +.\" $OpenBSD: pci_intr_map.9,v 1.11 2011/05/21 21:29:20 kettenis Exp $ .\" .\" Copyright (c) 2005 Michael Shalayeff .\" All rights reserved. @@ -15,11 +15,12 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: March 26 2010 $ +.Dd $Mdocdate: May 21 2011 $ .Dt PCI_INTR_MAP 9 .Os .Sh NAME .Nm pci_intr_map , +.Nm pci_intr_map_msi , .Nm pci_intr_line , .Nm pci_intr_string , .Nm pci_intr_establish , @@ -34,6 +35,8 @@ .Ft int .Fn pci_intr_map "struct pci_attach_args *paa" "pci_intr_handle_t *ih" .Ft int +.Fn pci_intr_map_msi "struct pci_attach_args *paa" "pci_intr_handle_t *ih" +.Ft int .Fn pci_intr_line "pci_intr_handle_t ih" .Ft const char * .Fn pci_intr_string "pci_chipset_tag_t pc" "pci_intr_handle_t ih" @@ -50,7 +53,9 @@ An architect type is provided by the machine-dependent code .Va pci_intr_handle_t , to be initialised by -.Fn pci_intr_map . +.Fn pci_intr_map +or +.Fn pci_intr_map_msi . .Pp The .Fn pci_intr_map @@ -58,6 +63,13 @@ function should be called first to establish a mapping between a PCI pin and the interrupt controller's interrupt vector. This process may include resolving the mapping through firmware-provided information. +For devices that support Message Signaled Interrupts (MSI) the +.Fn pci_intr_map_msi +function should be called instead. This function can fail if the +system does not support MSI. +In that case +.Fn pci_intr_map +should be called to fall back on classic PCI interrupts. .Pp Having initialised the .Va pci_intr_handle_t @@ -97,7 +109,7 @@ xxxattach(struct device *parent, struct device *self, void *aux) \&... - if (pci_intr_map(pa, &ih)) { + if (pci_intr_map_msi(pa, &ih) && pci_intr_map(pa, &ih)) { printf(": can't map interrupt\en"); bus_space_unmap(sc->iot, sc->ioh, size); return; |