Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/arm/acpi Match _PRT by segment and bus
details: https://anonhg.NetBSD.org/src/rev/1be0ef6ec62f
branches: trunk
changeset: 836743:1be0ef6ec62f
user: jmcneill <jmcneill%NetBSD.org@localhost>
date: Sat Nov 03 12:03:05 2018 +0000
description:
Match _PRT by segment and bus
diffstat:
sys/arch/arm/acpi/acpi_pci_machdep.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diffs (62 lines):
diff -r 3a4ab7247480 -r 1be0ef6ec62f sys/arch/arm/acpi/acpi_pci_machdep.c
--- a/sys/arch/arm/acpi/acpi_pci_machdep.c Sat Nov 03 10:51:14 2018 +0000
+++ b/sys/arch/arm/acpi/acpi_pci_machdep.c Sat Nov 03 12:03:05 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_pci_machdep.c,v 1.6 2018/11/02 15:01:18 jmcneill Exp $ */
+/* $NetBSD: acpi_pci_machdep.c,v 1.7 2018/11/03 12:03:05 jmcneill Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_pci_machdep.c,v 1.6 2018/11/02 15:01:18 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_pci_machdep.c,v 1.7 2018/11/03 12:03:05 jmcneill Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -60,6 +60,7 @@
#include <arm/pci/pci_msi_machdep.h>
struct acpi_pci_prt {
+ u_int prt_segment;
u_int prt_bus;
ACPI_HANDLE prt_handle;
TAILQ_ENTRY(acpi_pci_prt) prt_list;
@@ -192,6 +193,7 @@
if (handle != NULL) {
prt = kmem_alloc(sizeof(*prt), KM_SLEEP);
prt->prt_bus = pba->pba_bus;
+ prt->prt_segment = ap->ap_seg;
prt->prt_handle = handle;
TAILQ_INSERT_TAIL(&acpi_pci_irq_routes, prt, prt_list);
}
@@ -274,13 +276,16 @@
}
static struct acpi_pci_prt *
-acpi_pci_md_intr_find_prt(u_int bus)
+acpi_pci_md_intr_find_prt(pci_chipset_tag_t pc, u_int bus)
{
struct acpi_pci_prt *prt, *prtp;
+ u_int segment;
+
+ segment = pci_get_segment(pc);
prt = NULL;
TAILQ_FOREACH(prtp, &acpi_pci_irq_routes, prt_list)
- if (prtp->prt_bus == bus) {
+ if (prtp->prt_segment == segment && prtp->prt_bus == bus) {
prt = prtp;
break;
}
@@ -301,7 +306,7 @@
if (pa->pa_intrpin == PCI_INTERRUPT_PIN_NONE)
return EINVAL;
- prt = acpi_pci_md_intr_find_prt(pa->pa_bus);
+ prt = acpi_pci_md_intr_find_prt(pa->pa_pc, pa->pa_bus);
if (prt == NULL)
return ENXIO;
Home |
Main Index |
Thread Index |
Old Index