diff mbox

[10/13] spapr: Move /event-sources construction to spapr_build_fdt()

Message ID 1476940330-27705-11-git-send-email-david@gibson.dropbear.id.au
State New
Headers show

Commit Message

David Gibson Oct. 20, 2016, 5:12 a.m. UTC
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 <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr.c         |  6 +++---
 hw/ppc/spapr_events.c  | 21 ++++++++++-----------
 include/hw/ppc/spapr.h |  2 +-
 3 files changed, 14 insertions(+), 15 deletions(-)

Comments

Thomas Huth Oct. 20, 2016, 8:42 a.m. UTC | #1
On 20.10.2016 07:12, David Gibson wrote:
> 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 <david@gibson.dropbear.id.au>
> ---
>  hw/ppc/spapr.c         |  6 +++---
>  hw/ppc/spapr_events.c  | 21 ++++++++++-----------
>  include/hw/ppc/spapr.h |  2 +-
>  3 files changed, 14 insertions(+), 15 deletions(-)

Reviewed-by: Thomas Huth <thuth@redhat.com>
diff mbox

Patch

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index cafa798..49f6c47 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);