Message ID | 20220105212338.49899-14-danielhb413@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | user creatable pnv-phb3/pnv-phb4 devices | expand |
On 1/5/22 22:23, Daniel Henrique Barboza wrote: > Relying on stack->phb to write the xscom DT of the PEC is something that > we won't be able to do with user creatable pnv-phb4 devices. > > Hopefully, this can be done by using pnv_phb4_pec_get_phb_id(), which is > already used by pnv_pec_realize() to set the phb-id of the stack. Use > the same idea in pnv_pec_dt_xscom() to write ibm,phb-index without the > need to accessing stack->phb, since stack->phb is not granted to be != > NULL when user creatable phbs are introduced. > > Reviewed-by: Cédric Le Goater <clg@kaod.org> > Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C. > --- > hw/pci-host/pnv_phb4_pec.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c > index e47d19dfff..0675fc55bc 100644 > --- a/hw/pci-host/pnv_phb4_pec.c > +++ b/hw/pci-host/pnv_phb4_pec.c > @@ -449,8 +449,7 @@ static int pnv_pec_dt_xscom(PnvXScomInterface *dev, void *fdt, > pecc->compat_size))); > > for (i = 0; i < pec->num_stacks; i++) { > - PnvPhb4PecStack *stack = &pec->stacks[i]; > - PnvPHB4 *phb = &stack->phb; > + int phb_id = pnv_phb4_pec_get_phb_id(pec, i); > int stk_offset; > > name = g_strdup_printf("stack@%x", i); > @@ -460,7 +459,7 @@ static int pnv_pec_dt_xscom(PnvXScomInterface *dev, void *fdt, > _FDT((fdt_setprop(fdt, stk_offset, "compatible", pecc->stk_compat, > pecc->stk_compat_size))); > _FDT((fdt_setprop_cell(fdt, stk_offset, "reg", i))); > - _FDT((fdt_setprop_cell(fdt, stk_offset, "ibm,phb-index", phb->phb_id))); > + _FDT((fdt_setprop_cell(fdt, stk_offset, "ibm,phb-index", phb_id))); > } > > return 0; >
diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c index e47d19dfff..0675fc55bc 100644 --- a/hw/pci-host/pnv_phb4_pec.c +++ b/hw/pci-host/pnv_phb4_pec.c @@ -449,8 +449,7 @@ static int pnv_pec_dt_xscom(PnvXScomInterface *dev, void *fdt, pecc->compat_size))); for (i = 0; i < pec->num_stacks; i++) { - PnvPhb4PecStack *stack = &pec->stacks[i]; - PnvPHB4 *phb = &stack->phb; + int phb_id = pnv_phb4_pec_get_phb_id(pec, i); int stk_offset; name = g_strdup_printf("stack@%x", i); @@ -460,7 +459,7 @@ static int pnv_pec_dt_xscom(PnvXScomInterface *dev, void *fdt, _FDT((fdt_setprop(fdt, stk_offset, "compatible", pecc->stk_compat, pecc->stk_compat_size))); _FDT((fdt_setprop_cell(fdt, stk_offset, "reg", i))); - _FDT((fdt_setprop_cell(fdt, stk_offset, "ibm,phb-index", phb->phb_id))); + _FDT((fdt_setprop_cell(fdt, stk_offset, "ibm,phb-index", phb_id))); } return 0;