diff mbox

[v3,18/20] mips_cmgcr: Convert to DEFINE_PROP_LINK

Message ID 20170704064347.7022-19-famz@redhat.com
State New
Headers show

Commit Message

Fam Zheng July 4, 2017, 6:43 a.m. UTC
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 hw/misc/mips_cmgcr.c         | 22 ++++++----------------
 include/hw/misc/mips_cmgcr.h |  5 +++--
 2 files changed, 9 insertions(+), 18 deletions(-)
diff mbox

Patch

diff --git a/hw/misc/mips_cmgcr.c b/hw/misc/mips_cmgcr.c
index a1edb53..f9b2a67 100644
--- a/hw/misc/mips_cmgcr.c
+++ b/hw/misc/mips_cmgcr.c
@@ -48,9 +48,9 @@  static inline void update_cpc_base(MIPSGCRState *gcr, uint64_t val)
     if (is_cpc_connected(gcr)) {
         gcr->cpc_base = val & GCR_CPC_BASE_MSK;
         memory_region_transaction_begin();
-        memory_region_set_address(gcr->cpc_mr,
+        memory_region_set_address(MEMORY_REGION(gcr->cpc_mr),
                                   gcr->cpc_base & GCR_CPC_BASE_CPCBASE_MSK);
-        memory_region_set_enabled(gcr->cpc_mr,
+        memory_region_set_enabled(MEMORY_REGION(gcr->cpc_mr),
                                   gcr->cpc_base & GCR_CPC_BASE_CPCEN_MSK);
         memory_region_transaction_commit();
     }
@@ -61,9 +61,9 @@  static inline void update_gic_base(MIPSGCRState *gcr, uint64_t val)
     if (is_gic_connected(gcr)) {
         gcr->gic_base = val & GCR_GIC_BASE_MSK;
         memory_region_transaction_begin();
-        memory_region_set_address(gcr->gic_mr,
+        memory_region_set_address(MEMORY_REGION(gcr->gic_mr),
                                   gcr->gic_base & GCR_GIC_BASE_GICBASE_MSK);
-        memory_region_set_enabled(gcr->gic_mr,
+        memory_region_set_enabled(MEMORY_REGION(gcr->gic_mr),
                                   gcr->gic_base & GCR_GIC_BASE_GICEN_MSK);
         memory_region_transaction_commit();
     }
@@ -181,18 +181,6 @@  static void mips_gcr_init(Object *obj)
     SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
     MIPSGCRState *s = MIPS_GCR(obj);
 
-    object_property_add_link(obj, "gic", TYPE_MEMORY_REGION,
-                             (Object **)&s->gic_mr,
-                             qdev_prop_allow_set_link_before_realize,
-                             OBJ_PROP_LINK_UNREF_ON_RELEASE,
-                             &error_abort);
-
-    object_property_add_link(obj, "cpc", TYPE_MEMORY_REGION,
-                             (Object **)&s->cpc_mr,
-                             qdev_prop_allow_set_link_before_realize,
-                             OBJ_PROP_LINK_UNREF_ON_RELEASE,
-                             &error_abort);
-
     memory_region_init_io(&s->iomem, OBJECT(s), &gcr_ops, s,
                           "mips-gcr", GCR_ADDRSPACE_SZ);
     sysbus_init_mmio(sbd, &s->iomem);
@@ -227,6 +215,8 @@  static Property mips_gcr_properties[] = {
     DEFINE_PROP_INT32("num-vp", MIPSGCRState, num_vps, 1),
     DEFINE_PROP_INT32("gcr-rev", MIPSGCRState, gcr_rev, 0x800),
     DEFINE_PROP_UINT64("gcr-base", MIPSGCRState, gcr_base, GCR_BASE_ADDR),
+    DEFINE_PROP_LINK("gic", MIPSGCRState, gic_mr, TYPE_MEMORY_REGION),
+    DEFINE_PROP_LINK("cpc", MIPSGCRState, cpc_mr, TYPE_MEMORY_REGION),
     DEFINE_PROP_END_OF_LIST(),
 };
 
diff --git a/include/hw/misc/mips_cmgcr.h b/include/hw/misc/mips_cmgcr.h
index c9dfcb4..f2b3577 100644
--- a/include/hw/misc/mips_cmgcr.h
+++ b/include/hw/misc/mips_cmgcr.h
@@ -76,8 +76,9 @@  struct MIPSGCRState {
     int32_t num_vps;
     hwaddr gcr_base;
     MemoryRegion iomem;
-    MemoryRegion *cpc_mr;
-    MemoryRegion *gic_mr;
+    /* MemoryRegion pointers for cpc and gic, to be filled by link property */
+    Object *cpc_mr;
+    Object *gic_mr;
 
     uint64_t cpc_base;
     uint64_t gic_base;