[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 08/18] ppc/pnv: Complete user created PHB3 devices
From: |
Daniel Henrique Barboza |
Subject: |
[PATCH v2 08/18] ppc/pnv: Complete user created PHB3 devices |
Date: |
Wed, 5 Jan 2022 18:23:28 -0300 |
From: Cédric Le Goater <clg@kaod.org>
PHB3s ared SysBus devices and should be allowed to be dynamically
created.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
hw/pci-host/pnv_phb3.c | 9 +++++++++
hw/ppc/pnv.c | 2 ++
2 files changed, 11 insertions(+)
diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c
index a52aedcad3..7fb35dc031 100644
--- a/hw/pci-host/pnv_phb3.c
+++ b/hw/pci-host/pnv_phb3.c
@@ -993,6 +993,9 @@ static void pnv_phb3_realize(DeviceState *dev, Error **errp)
/* User created devices */
if (!phb->chip) {
+ Error *local_err = NULL;
+ BusState *s;
+
phb->chip = pnv_get_chip(pnv, phb->chip_id);
if (!phb->chip) {
error_setg(errp, "invalid chip id: %d", phb->chip_id);
@@ -1004,6 +1007,12 @@ static void pnv_phb3_realize(DeviceState *dev, Error
**errp)
* correctly the device tree.
*/
pnv_chip_parent_fixup(phb->chip, OBJECT(phb), phb->phb_id);
+
+ s = qdev_get_parent_bus(DEVICE(phb->chip));
+ if (!qdev_set_parent_bus(DEVICE(phb), s, &local_err)) {
+ error_propagate(errp, local_err);
+ return;
+ }
}
if (phb->phb_id >= PNV_CHIP_GET_CLASS(phb->chip)->num_phbs) {
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index fa5e7bc751..8dc6382357 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1941,6 +1941,8 @@ static void pnv_machine_power8_class_init(ObjectClass
*oc, void *data)
pmc->compat = compat;
pmc->compat_size = sizeof(compat);
+
+ machine_class_allow_dynamic_sysbus_dev(mc, TYPE_PNV_PHB3);
}
static void pnv_machine_power9_class_init(ObjectClass *oc, void *data)
--
2.33.1
- Re: [PATCH v2 01/18] pnv_phb3.c: add unique chassis and slot for pnv_phb3_root_port, (continued)
- [PATCH v2 02/18] pnv_phb4.c: add unique chassis and slot for pnv_phb4_root_port, Daniel Henrique Barboza, 2022/01/05
- [PATCH v2 03/18] ppc/pnv: Attach PHB3 root port device when defaults are enabled, Daniel Henrique Barboza, 2022/01/05
- [PATCH v2 04/18] pnv_phb4.c: make pnv-phb4-root-port user creatable, Daniel Henrique Barboza, 2022/01/05
- [PATCH v2 05/18] pnv_phb4.c: check if root port exists in rc_config functions, Daniel Henrique Barboza, 2022/01/05
- [PATCH v2 06/18] ppc/pnv: Introduce support for user created PHB3 devices, Daniel Henrique Barboza, 2022/01/05
- [PATCH v2 07/18] ppc/pnv: Reparent user created PHB3 devices to the PnvChip, Daniel Henrique Barboza, 2022/01/05
- [PATCH v2 08/18] ppc/pnv: Complete user created PHB3 devices,
Daniel Henrique Barboza <=
- [PATCH v2 09/18] ppc/pnv: Move num_phbs under Pnv8Chip, Daniel Henrique Barboza, 2022/01/05
- [PATCH v2 10/18] pnv_phb3.h: change TYPE_PNV_PHB3_ROOT_BUS name, Daniel Henrique Barboza, 2022/01/05
- [PATCH v2 11/18] pnv_phb4.c: introduce pnv_phb4_set_stack_phb_props(), Daniel Henrique Barboza, 2022/01/05
- [PATCH v2 12/18] pnv_phb4_pec.c: move pnv_pec_phb_offset() to pnv_phb4.c, Daniel Henrique Barboza, 2022/01/05
- [PATCH v2 13/18] pnv_phb4_pec: use pnv_phb4_pec_get_phb_id() in pnv_pec_dt_xscom(), Daniel Henrique Barboza, 2022/01/05
- [PATCH v2 14/18] pnv_phb4.h: turn phb into a pointer in struct PnvPhb4PecStack, Daniel Henrique Barboza, 2022/01/05