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
> 


Reply via email to