[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 02/16] ppc/pnv: add pnv_get_phb3_child()
From: |
Daniel Henrique Barboza |
Subject: |
[PATCH v2 02/16] ppc/pnv: add pnv_get_phb3_child() |
Date: |
Tue, 31 May 2022 18:49:03 -0300 |
The ics and pic related functions in pnv.c relies in the fact that the
child device of the chip is always a PnvPHB3 object. This will change in
the next patches, and the PHB3 will be a child of another device that
will be attached to the pnv8 chip.
To ease the amount of changes done later, on let's create a helper that
retrieves the PnvPHB3 pointer from the child object in these functions.
After that we'll have a single place to change when the chip starts
using the upcoming device instead.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/pnv.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 7c08a78d6c..aaf4d241c3 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -652,10 +652,15 @@ static ISABus *pnv_isa_create(PnvChip *chip, Error **errp)
return PNV_CHIP_GET_CLASS(chip)->isa_create(chip, errp);
}
+static PnvPHB3 *pnv_get_phb3_child(Object *child)
+{
+ return (PnvPHB3 *)object_dynamic_cast(child, TYPE_PNV_PHB3);
+}
+
static int pnv_chip_power8_pic_print_info_child(Object *child, void *opaque)
{
Monitor *mon = opaque;
- PnvPHB3 *phb3 = (PnvPHB3 *) object_dynamic_cast(child, TYPE_PNV_PHB3);
+ PnvPHB3 *phb3 = pnv_get_phb3_child(child);
if (phb3) {
pnv_phb3_msi_pic_print_info(&phb3->msis, mon);
@@ -1942,7 +1947,7 @@ typedef struct ForeachPhb3Args {
static int pnv_ics_get_child(Object *child, void *opaque)
{
ForeachPhb3Args *args = opaque;
- PnvPHB3 *phb3 = (PnvPHB3 *) object_dynamic_cast(child, TYPE_PNV_PHB3);
+ PnvPHB3 *phb3 = pnv_get_phb3_child(child);
if (phb3) {
if (ics_valid_irq(&phb3->lsis, args->irq)) {
@@ -1992,7 +1997,7 @@ PnvChip *pnv_get_chip(PnvMachineState *pnv, uint32_t
chip_id)
static int pnv_ics_resend_child(Object *child, void *opaque)
{
- PnvPHB3 *phb3 = (PnvPHB3 *) object_dynamic_cast(child, TYPE_PNV_PHB3);
+ PnvPHB3 *phb3 = pnv_get_phb3_child(child);
if (phb3) {
ics_resend(&phb3->lsis);
--
2.36.1
- [PATCH v2 00/16] powernv: introduce pnv-phb base/proxy devices, Daniel Henrique Barboza, 2022/05/31
- [PATCH v2 01/16] ppc/pnv: add PHB3 bus init helper, Daniel Henrique Barboza, 2022/05/31
- [PATCH v2 02/16] ppc/pnv: add pnv_get_phb3_child(),
Daniel Henrique Barboza <=
- [PATCH v2 03/16] ppc/pnv: add PnvPHB base/proxy device, Daniel Henrique Barboza, 2022/05/31
- [PATCH v2 04/16] ppc/pnv: change PnvPHB3 to be a PnvPHB backend, Daniel Henrique Barboza, 2022/05/31
- [PATCH v2 05/16] ppc/pnv: user created pnv-phb for powernv8, Daniel Henrique Barboza, 2022/05/31
- [PATCH v2 06/16] ppc/pnv: add PHB4 bus init helper, Daniel Henrique Barboza, 2022/05/31
- [PATCH v2 07/16] ppc/pnv: change PnvPHB4 to be a PnvPHB backend, Daniel Henrique Barboza, 2022/05/31
- [PATCH v2 08/16] ppc/pnv: user created pnv-phb for powernv9, Daniel Henrique Barboza, 2022/05/31
- [PATCH v2 09/16] ppc/pnv: change pnv_phb4_get_pec() to also retrieve chip10->pecs, Daniel Henrique Barboza, 2022/05/31
- [PATCH v2 10/16] ppc/pnv: user creatable pnv-phb for powernv10, Daniel Henrique Barboza, 2022/05/31
- [PATCH v2 11/16] ppc/pnv: add pnv-phb-root-port device, Daniel Henrique Barboza, 2022/05/31
- [PATCH v2 12/16] ppc/pnv: remove pnv-phb3-root-port, Daniel Henrique Barboza, 2022/05/31