aboutsummaryrefslogtreecommitdiff
path: root/sys/arm64/arm64/gic_v3_acpi.c
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2018-03-02 13:04:21 +0000
committerAndrew Turner <andrew@FreeBSD.org>2018-03-02 13:04:21 +0000
commit6d9e17fc83112c05b2858a756a3263c1026527e3 (patch)
tree927f72b37022c392ba685e38f98b80d734e706f3 /sys/arm64/arm64/gic_v3_acpi.c
parent86ba49a72276ad7c16d691dc3e8a335c7397b045 (diff)
downloadsrc-6d9e17fc83112c05b2858a756a3263c1026527e3.tar.gz
src-6d9e17fc83112c05b2858a756a3263c1026527e3.zip
Count the number of children in the GICv3 ACPI attachment. This is needed
later for assigning IRQ vector space. Sponsored by: DARPA, AFRL Sponsored by: Cavium (Hardware)
Notes
Notes: svn path=/head/; revision=330276
Diffstat (limited to 'sys/arm64/arm64/gic_v3_acpi.c')
-rw-r--r--sys/arm64/arm64/gic_v3_acpi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/arm64/arm64/gic_v3_acpi.c b/sys/arm64/arm64/gic_v3_acpi.c
index 00a5e3712087..23b327a24029 100644
--- a/sys/arm64/arm64/gic_v3_acpi.c
+++ b/sys/arm64/arm64/gic_v3_acpi.c
@@ -297,12 +297,14 @@ gic_v3_add_children(ACPI_SUBTABLE_HEADER *entry, void *arg)
{
ACPI_MADT_GENERIC_TRANSLATOR *gict;
struct gic_v3_acpi_devinfo *di;
+ struct gic_v3_softc *sc;
device_t child, dev;
if (entry->Type == ACPI_MADT_TYPE_GENERIC_TRANSLATOR) {
/* We have an ITS, add it as a child */
gict = (ACPI_MADT_GENERIC_TRANSLATOR *)entry;
dev = arg;
+ sc = device_get_softc(dev);
child = device_add_child(dev, "its", -1);
if (child == NULL)
@@ -313,6 +315,7 @@ gic_v3_add_children(ACPI_SUBTABLE_HEADER *entry, void *arg)
resource_list_add(&di->di_rl, SYS_RES_MEMORY, 0,
gict->BaseAddress, gict->BaseAddress + 128 * 1024 - 1,
128 * 1024);
+ sc->gic_nchildren++;
device_set_ivars(child, di);
}
}