Quoting David Gibson (2016-10-20 21:56:37) > The /event-sources device tree node is built from spapr_create_fdt_skel(). > As part of consolidating device tree construction to reset time, this moves > it to spapr_build_fdt(). > > Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> > Reviewed-by: Thomas Huth <th...@redhat.com>
Reviewed-by: Michael Roth <mdr...@linux.vnet.ibm.com> > --- > hw/ppc/spapr.c | 6 +++--- > hw/ppc/spapr_events.c | 21 ++++++++++----------- > include/hw/ppc/spapr.h | 2 +- > 3 files changed, 14 insertions(+), 15 deletions(-) > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index d69b234..c7ad195 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -328,9 +328,6 @@ static void *spapr_create_fdt_skel(sPAPRMachineState > *spapr) > > _FDT((fdt_end_node(fdt))); > > - /* event-sources */ > - spapr_events_fdt_skel(fdt, spapr->check_exception_irq); > - > /* /hypervisor node */ > if (kvm_enabled()) { > uint8_t hypercall[16]; > @@ -983,6 +980,9 @@ static void *spapr_build_fdt(sPAPRMachineState *spapr, > } > } > > + /* /event-sources */ > + spapr_dt_events(fdt, spapr->check_exception_irq); > + > /* /rtas */ > spapr_dt_rtas(spapr, fdt); > > diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c > index 6d35345..89aa5a7 100644 > --- a/hw/ppc/spapr_events.c > +++ b/hw/ppc/spapr_events.c > @@ -211,23 +211,22 @@ struct hp_log_full { > #define EVENT_MASK_HOTPLUG 0x10000000 > #define EVENT_MASK_IO 0x08000000 > > -void spapr_events_fdt_skel(void *fdt, uint32_t check_exception_irq) > +void spapr_dt_events(void *fdt, uint32_t check_exception_irq) > { > + int event_sources, epow_events; > uint32_t irq_ranges[] = {cpu_to_be32(check_exception_irq), > cpu_to_be32(1)}; > uint32_t interrupts[] = {cpu_to_be32(check_exception_irq), 0}; > > - _FDT((fdt_begin_node(fdt, "event-sources"))); > + _FDT(event_sources = fdt_add_subnode(fdt, 0, "event-sources")); > > - _FDT((fdt_property(fdt, "interrupt-controller", NULL, 0))); > - _FDT((fdt_property_cell(fdt, "#interrupt-cells", 2))); > - _FDT((fdt_property(fdt, "interrupt-ranges", > - irq_ranges, sizeof(irq_ranges)))); > + _FDT(fdt_setprop(fdt, event_sources, "interrupt-controller", NULL, 0)); > + _FDT(fdt_setprop_cell(fdt, event_sources, "#interrupt-cells", 2)); > + _FDT(fdt_setprop(fdt, event_sources, "interrupt-ranges", > + irq_ranges, sizeof(irq_ranges))); > > - _FDT((fdt_begin_node(fdt, "epow-events"))); > - _FDT((fdt_property(fdt, "interrupts", interrupts, sizeof(interrupts)))); > - _FDT((fdt_end_node(fdt))); > - > - _FDT((fdt_end_node(fdt))); > + _FDT(epow_events = fdt_add_subnode(fdt, event_sources, "epow-events")); > + _FDT(fdt_setprop(fdt, epow_events, "interrupts", > + interrupts, sizeof(interrupts))); > } > > static void rtas_event_log_queue(int log_type, void *data, bool exception) > diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h > index 8b8bb97..ae7d1d7 100644 > --- a/include/hw/ppc/spapr.h > +++ b/include/hw/ppc/spapr.h > @@ -581,7 +581,7 @@ struct sPAPREventLogEntry { > }; > > void spapr_events_init(sPAPRMachineState *sm); > -void spapr_events_fdt_skel(void *fdt, uint32_t epow_irq); > +void spapr_dt_events(void *fdt, uint32_t check_exception_irq); > int spapr_h_cas_compose_response(sPAPRMachineState *sm, > target_ulong addr, target_ulong size, > bool cpu_update, bool memory_update); > -- > 2.7.4 >