Pass PCIe requester ID as sideband data here as well.
authorkettenis <kettenis@openbsd.org>
Fri, 3 Aug 2018 22:40:05 +0000 (22:40 +0000)
committerkettenis <kettenis@openbsd.org>
Fri, 3 Aug 2018 22:40:05 +0000 (22:40 +0000)
sys/arch/arm64/dev/acpipci.c
sys/arch/arm64/dev/pciecam.c
sys/dev/fdt/dwpcie.c

index b087765..b6f992d 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: acpipci.c,v 1.3 2018/07/28 13:59:08 kettenis Exp $    */
+/*     $OpenBSD: acpipci.c,v 1.4 2018/08/03 22:40:05 kettenis Exp $    */
 /*
  * Copyright (c) 2018 Mark Kettenis
  *
@@ -453,6 +453,8 @@ acpipci_intr_establish(void *v, pci_intr_handle_t ihp, int level,
                pcireg_t reg;
                int off;
 
+               /* Assume hardware passes Requester ID as sideband data. */
+               data = pci_requester_id(ih->ih_pc, ih->ih_tag);
                cookie = ic->ic_establish_msi(ic->ic_cookie, &addr,
                    &data, level, func, arg, name);
                if (cookie == NULL)
index 65eaacf..74ae9a1 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: pciecam.c,v 1.4 2018/07/28 13:59:08 kettenis Exp $ */
+/* $OpenBSD: pciecam.c,v 1.5 2018/08/03 22:40:05 kettenis Exp $ */
 /*
  * Copyright (c) 2013,2017 Patrick Wildt <patrick@blueri.se>
  *
@@ -381,6 +381,8 @@ pciecam_intr_establish(void *self, pci_intr_handle_t ihp, int level,
                pcireg_t reg;
                int off;
 
+               /* Assume hardware passes Requester ID as sideband data. */
+               data = pci_requester_id(ih->ih_pc, ih->ih_tag);
                cookie = arm_intr_establish_fdt_msi(sc->sc_node, &addr,
                    &data, level, func, arg, (void *)name);
                if (cookie == NULL)
index f56857c..0a338cc 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: dwpcie.c,v 1.7 2018/07/28 13:59:08 kettenis Exp $     */
+/*     $OpenBSD: dwpcie.c,v 1.8 2018/08/03 22:40:05 kettenis Exp $     */
 /*
  * Copyright (c) 2018 Mark Kettenis <kettenis@openbsd.org>
  *
@@ -580,6 +580,8 @@ dwpcie_intr_establish(void *v, pci_intr_handle_t ihp, int level,
                pcireg_t reg;
                int off;
 
+               /* Assume hardware passes Requester ID as sideband data. */
+               data = pci_requester_id(ih->ih_pc, ih->ih_tag);
                cookie = arm_intr_establish_fdt_msi(sc->sc_node, &addr,
                    &data, level, func, arg, (void *)name);
                if (cookie == NULL)