]> git.proxmox.com Git - mirror_qemu.git/commitdiff
pseries: Move /event-sources construction to spapr_build_fdt()
authorDavid Gibson <david@gibson.dropbear.id.au>
Thu, 20 Oct 2016 04:56:48 +0000 (15:56 +1100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Thu, 27 Oct 2016 22:38:26 +0000 (09:38 +1100)
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>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
hw/ppc/spapr.c
hw/ppc/spapr_events.c
include/hw/ppc/spapr.h

index 1b61de250ddb06f0bdb1a0b5c7b59b989f7b8dc8..048fb3d7cb51081445c5b638c4069fe42fd40b3f 100644 (file)
@@ -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);
 
index 6d3534541c853d38baefa76d3137d46ed5a09958..89aa5a792691340c2dd28198579ce9985e0abb2e 100644 (file)
@@ -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)
index 8b8bb976341fe3e4e7f63df62bc47829ea161972..ae7d1d704379ff8e681eb9f10aafec67683fa2eb 100644 (file)
@@ -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);