Message ID | 20211228193806.1198496-12-danielhb413@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | ppc/pnv: enable pnv-phb4 user devices | expand |
On 12/28/21 20:38, 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_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. > > Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Couldn't we do that already without the previous change ? 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 4f6db26633..56ffd446ab 100644 > --- a/hw/pci-host/pnv_phb4_pec.c > +++ b/hw/pci-host/pnv_phb4_pec.c > @@ -466,8 +466,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_pec_get_phb_id(pec, i); > int stk_offset; > > name = g_strdup_printf("stack@%x", i); > @@ -477,7 +476,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; >
On 1/3/22 06:08, Cédric Le Goater wrote: > On 12/28/21 20:38, 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_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. >> >> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> > > Reviewed-by: Cédric Le Goater <clg@kaod.org> > > Couldn't we do that already without the previous change ? Yes. In fact I'll postpone the previous patch until we actually need it (in this series it would be patch 15). Thanks, Daniel > > 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 4f6db26633..56ffd446ab 100644 >> --- a/hw/pci-host/pnv_phb4_pec.c >> +++ b/hw/pci-host/pnv_phb4_pec.c >> @@ -466,8 +466,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_pec_get_phb_id(pec, i); >> int stk_offset; >> name = g_strdup_printf("stack@%x", i); >> @@ -477,7 +476,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 4f6db26633..56ffd446ab 100644 --- a/hw/pci-host/pnv_phb4_pec.c +++ b/hw/pci-host/pnv_phb4_pec.c @@ -466,8 +466,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_pec_get_phb_id(pec, i); int stk_offset; name = g_strdup_printf("stack@%x", i); @@ -477,7 +476,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;
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_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. Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> --- hw/pci-host/pnv_phb4_pec.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)