diff options
author | Cédric Le Goater | 2019-12-10 14:58:44 +0100 |
---|---|---|
committer | David Gibson | 2019-12-17 00:39:48 +0100 |
commit | 109dce37860aeb0e8894cb36b29d40f279c6bb6b (patch) | |
tree | bfe40ea82e03d5cf3568e3a1753203ea1cb37727 /hw/ppc/pnv_xscom.c | |
parent | target/ppc: Add SPR TBU40 (diff) | |
download | qemu-109dce37860aeb0e8894cb36b29d40f279c6bb6b.tar.gz qemu-109dce37860aeb0e8894cb36b29d40f279c6bb6b.tar.xz qemu-109dce37860aeb0e8894cb36b29d40f279c6bb6b.zip |
ppc/pnv: Loop on the whole hierarchy to populate the DT with the XSCOM nodes
Some PnvXScomInterface objects lie a bit deeper (PnvPBCQState) than
the first layer, so we need to loop on the whole object hierarchy to
catch them.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20191210135845.19773-2-clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
[dwg: Corrected error in comment]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/ppc/pnv_xscom.c')
-rw-r--r-- | hw/ppc/pnv_xscom.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/hw/ppc/pnv_xscom.c b/hw/ppc/pnv_xscom.c index b3d3b6e350..760571037b 100644 --- a/hw/ppc/pnv_xscom.c +++ b/hw/ppc/pnv_xscom.c @@ -358,7 +358,12 @@ int pnv_dt_xscom(PnvChip *chip, void *fdt, int root_offset) args.fdt = fdt; args.xscom_offset = xscom_offset; - object_child_foreach(OBJECT(chip), xscom_dt_child, &args); + /* + * Loop on the whole object hierarchy to catch all + * PnvXScomInterface objects which can lie a bit deeper than the + * first layer. + */ + object_child_foreach_recursive(OBJECT(chip), xscom_dt_child, &args); return 0; } |