diff options
author | Cédric Le Goater | 2019-12-10 14:58:45 +0100 |
---|---|---|
committer | David Gibson | 2019-12-17 00:39:48 +0100 |
commit | 9e028fffaabee37ea05baf1950376f401bbff91c (patch) | |
tree | e5df5e429353dfd5a4ba022134a5339954f36abc /hw/ppc/pnv_xscom.c | |
parent | ppc/pnv: Loop on the whole hierarchy to populate the DT with the XSCOM nodes (diff) | |
download | qemu-9e028fffaabee37ea05baf1950376f401bbff91c.tar.gz qemu-9e028fffaabee37ea05baf1950376f401bbff91c.tar.xz qemu-9e028fffaabee37ea05baf1950376f401bbff91c.zip |
ppc/pnv: populate the DT with realized XSCOM devices
Some devices could be initialized in the instance_init handler but not
realized for configuration reasons. Nodes should not be added in the DT
for such devices.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20191210135845.19773-3-clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
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 | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/hw/ppc/pnv_xscom.c b/hw/ppc/pnv_xscom.c index 760571037b..fd48d4ee37 100644 --- a/hw/ppc/pnv_xscom.c +++ b/hw/ppc/pnv_xscom.c @@ -304,7 +304,10 @@ static int xscom_dt_child(Object *child, void *opaque) PnvXScomInterface *xd = PNV_XSCOM_INTERFACE(child); PnvXScomInterfaceClass *xc = PNV_XSCOM_INTERFACE_GET_CLASS(xd); - if (xc->dt_xscom) { + /* + * Only "realized" devices should be configured in the DT + */ + if (xc->dt_xscom && DEVICE(child)->realized) { _FDT((xc->dt_xscom(xd, args->fdt, args->xscom_offset))); } } |