Convert the *_orphan() device-creation calls in the hw/arm imx board files to the new parented API introduced earlier in this series, so every onboard device gets a stable path in the composition tree instead of landing in /machine/unattached with an unstable device[N] name.
The parent for each device is the object that owns its lifetime: the machine for board-created devices, the containing SoC device for composite children. Names follow existing QOM conventions. Per-site rationale (reviewers: dispute the modeling here): hw/arm/fsl-imx6.c:171 | sysbus_create_simple_orphan | OBJECT(dev) | "l2x0" | SoC DeviceClass.realize(DeviceState *dev); parent is the SoC device being realized; single instance hw/arm/imx25_pdk.c:130 | qdev_new_orphan | OBJECT(machine) | "sd-card[*]" | board init(MachineState *machine); loop over ESDHC slots; auto-index; drop _and_unref hw/arm/imx8mm-evk.c:100 | qdev_new_orphan | OBJECT(machine) | "sd-card[*]" | board init; loop over USDHC slots; auto-index; drop _and_unref hw/arm/imx8mp-evk.c:113 | qdev_new_orphan | OBJECT(machine) | "sd-card[*]" | board init; loop over USDHC slots; auto-index; drop _and_unref hw/arm/mcimx6ul-evk.c:62 | qdev_new_orphan | OBJECT(machine) | "sd-card[*]" | board init; loop over USDHC slots; auto-index; drop _and_unref hw/arm/mcimx7d-sabre.c:62 | qdev_new_orphan | OBJECT(machine) | "sd-card[*]" | board init; loop over USDHC slots; auto-index; drop _and_unref hw/arm/sabrelite.c:99 | qdev_new_orphan | OBJECT(machine) | "spi-flash" | board init; single NOR flash on SPI bus; drop _and_unref Link: https://lore.kernel.org/qemu-devel/[email protected]/ Assisted-by: Kiro Signed-off-by: Alexander Graf <[email protected]> --- hw/arm/fsl-imx6.c | 3 ++- hw/arm/imx25_pdk.c | 4 ++-- hw/arm/imx8mm-evk.c | 4 ++-- hw/arm/imx8mp-evk.c | 4 ++-- hw/arm/mcimx6ul-evk.c | 4 ++-- hw/arm/mcimx7d-sabre.c | 4 ++-- hw/arm/sabrelite.c | 5 +++-- 7 files changed, 15 insertions(+), 13 deletions(-) diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index 103adcc2bd..44046953be 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -168,7 +168,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **errp) } /* L2 cache controller */ - sysbus_create_simple_orphan("l2x0", FSL_IMX6_PL310_ADDR, NULL); + sysbus_create_simple(OBJECT(dev), "l2x0", "l2x0", FSL_IMX6_PL310_ADDR, + NULL); if (!sysbus_realize(SYS_BUS_DEVICE(&s->ccm), errp)) { return; diff --git a/hw/arm/imx25_pdk.c b/hw/arm/imx25_pdk.c index 6976652370..9351d53850 100644 --- a/hw/arm/imx25_pdk.c +++ b/hw/arm/imx25_pdk.c @@ -127,9 +127,9 @@ static void imx25_pdk_init(MachineState *machine) di = drive_get(IF_SD, 0, i); blk = di ? blk_by_legacy_dinfo(di) : NULL; bus = qdev_get_child_bus(DEVICE(&s->soc.esdhc[i]), "sd-bus"); - carddev = qdev_new_orphan(TYPE_SD_CARD); + carddev = qdev_new(OBJECT(machine), "sd-card[*]", TYPE_SD_CARD); qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); - qdev_realize_and_unref(carddev, bus, &error_fatal); + qdev_realize(carddev, bus, &error_fatal); } /* diff --git a/hw/arm/imx8mm-evk.c b/hw/arm/imx8mm-evk.c index ce7693ca7a..72fa1930ae 100644 --- a/hw/arm/imx8mm-evk.c +++ b/hw/arm/imx8mm-evk.c @@ -97,9 +97,9 @@ static void imx8mm_evk_init(MachineState *machine) blk = blk_by_legacy_dinfo(di); bus = qdev_get_child_bus(DEVICE(&s->usdhc[i]), "sd-bus"); - carddev = qdev_new_orphan(TYPE_SD_CARD); + carddev = qdev_new(OBJECT(machine), "sd-card[*]", TYPE_SD_CARD); qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); - qdev_realize_and_unref(carddev, bus, &error_fatal); + qdev_realize(carddev, bus, &error_fatal); } if (!qtest_enabled()) { diff --git a/hw/arm/imx8mp-evk.c b/hw/arm/imx8mp-evk.c index 90cda63b49..6116e6e9dc 100644 --- a/hw/arm/imx8mp-evk.c +++ b/hw/arm/imx8mp-evk.c @@ -110,9 +110,9 @@ static void imx8mp_evk_init(MachineState *machine) blk = blk_by_legacy_dinfo(di); bus = qdev_get_child_bus(DEVICE(&s->soc.usdhc[i]), "sd-bus"); - carddev = qdev_new_orphan(TYPE_SD_CARD); + carddev = qdev_new(OBJECT(machine), "sd-card[*]", TYPE_SD_CARD); qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); - qdev_realize_and_unref(carddev, bus, &error_fatal); + qdev_realize(carddev, bus, &error_fatal); } if (!qtest_enabled()) { diff --git a/hw/arm/mcimx6ul-evk.c b/hw/arm/mcimx6ul-evk.c index 96309e1bfc..be4c4ca316 100644 --- a/hw/arm/mcimx6ul-evk.c +++ b/hw/arm/mcimx6ul-evk.c @@ -59,9 +59,9 @@ static void mcimx6ul_evk_init(MachineState *machine) di = drive_get(IF_SD, 0, i); blk = di ? blk_by_legacy_dinfo(di) : NULL; bus = qdev_get_child_bus(DEVICE(&s->usdhc[i]), "sd-bus"); - carddev = qdev_new_orphan(TYPE_SD_CARD); + carddev = qdev_new(OBJECT(machine), "sd-card[*]", TYPE_SD_CARD); qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); - qdev_realize_and_unref(carddev, bus, &error_fatal); + qdev_realize(carddev, bus, &error_fatal); } if (!qtest_enabled()) { diff --git a/hw/arm/mcimx7d-sabre.c b/hw/arm/mcimx7d-sabre.c index be9d0d6993..d8b1e7fc7e 100644 --- a/hw/arm/mcimx7d-sabre.c +++ b/hw/arm/mcimx7d-sabre.c @@ -59,9 +59,9 @@ static void mcimx7d_sabre_init(MachineState *machine) di = drive_get(IF_SD, 0, i); blk = di ? blk_by_legacy_dinfo(di) : NULL; bus = qdev_get_child_bus(DEVICE(&s->usdhc[i]), "sd-bus"); - carddev = qdev_new_orphan(TYPE_SD_CARD); + carddev = qdev_new(OBJECT(machine), "sd-card[*]", TYPE_SD_CARD); qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); - qdev_realize_and_unref(carddev, bus, &error_fatal); + qdev_realize(carddev, bus, &error_fatal); } if (!qtest_enabled()) { diff --git a/hw/arm/sabrelite.c b/hw/arm/sabrelite.c index af4dfef7f2..04c764f82f 100644 --- a/hw/arm/sabrelite.c +++ b/hw/arm/sabrelite.c @@ -96,13 +96,14 @@ static void sabrelite_init(MachineState *machine) qemu_irq cs_line; DriveInfo *dinfo = drive_get(IF_MTD, 0, 0); - flash_dev = qdev_new_orphan("sst25vf016b"); + flash_dev = qdev_new(OBJECT(machine), "spi-flash", + "sst25vf016b"); if (dinfo) { qdev_prop_set_drive_err(flash_dev, "drive", blk_by_legacy_dinfo(dinfo), &error_fatal); } - qdev_realize_and_unref(flash_dev, BUS(spi_bus), &error_fatal); + qdev_realize(flash_dev, BUS(spi_bus), &error_fatal); cs_line = qdev_get_gpio_in_named(flash_dev, SSI_GPIO_CS, 0); qdev_connect_gpio_out(DEVICE(&s->soc.gpio[2]), 19, cs_line); -- 2.47.1
