qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: qemu-ppc@nongnu.org
Cc: peter.maydell@linaro.org, qemu-devel@nongnu.org,
	Markus Armbruster <armbru@redhat.com>
Subject: [Qemu-devel] [PULL 01/40] macio: Convert to realize()
Date: Wed,  3 Jun 2015 23:45:02 +0200	[thread overview]
Message-ID: <1433367941-119488-2-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1433367941-119488-1-git-send-email-agraf@suse.de>

From: Markus Armbruster <armbru@redhat.com>

Alexander Graf <agraf@suse.de> writes:

> On 09.03.15 19:30, Markus Armbruster wrote:
>> Alexander Graf <agraf@suse.de> writes:
>>
>>> On 27.02.15 13:43, Markus Armbruster wrote:
>>>> Convert device models "macio-oldworld" and "macio-newworld".
>>>>
>>>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>>>> ---
>>>> Depends on my "[PATCH 00/10] pci: Partial conversion to realize",
>>>> which is in Michael's latest pull request.
>>>
>>> Can you please poke me again when it landed?
>>
>> Applies cleanly to master now (commit 277263e).
>
> Hrm, does not seem to apply cleanly now. How about we postpone this to
> 2.4? It's not really crucial for 2.3 and we're in hard freeze now.

Sad (it's been on list for almost three weeks, most of the time waiting
for the PCI pull), but it's clearly your choice to make.

git-am doesn't dare to apply the patch on list, but git-cherry-pick
applies the commit from which it was formatted without a peep.  Result
appended, just in case you'd like to consider it.

>From f366a9732b6790609cc89e0c9272899cfbbe4e02 Mon Sep 17 00:00:00 2001
From: Markus Armbruster <armbru@redhat.com>
Date: Tue, 20 Jan 2015 16:27:56 +0100
Subject: [PATCH] macio: Convert to realize()

Convert device models "macio-oldworld" and "macio-newworld".

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/misc/macio/macio.c | 71 +++++++++++++++++++++++++++------------------------
 1 file changed, 38 insertions(+), 33 deletions(-)

diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c
index 063ad80..e9037b0 100644
--- a/hw/misc/macio/macio.c
+++ b/hw/misc/macio/macio.c
@@ -126,17 +126,18 @@ static void macio_bar_setup(MacIOState *macio_state)
     }
 }
 
-static int macio_common_initfn(PCIDevice *d)
+static void macio_common_realize(PCIDevice *d, Error **errp)
 {
     MacIOState *s = MACIO(d);
     SysBusDevice *sysbus_dev;
-    int ret;
+    Error *err = NULL;
 
     d->config[0x3d] = 0x01; // interrupt on pin 1
 
-    ret = qdev_init(DEVICE(&s->cuda));
-    if (ret < 0) {
-        return ret;
+    object_property_set_bool(OBJECT(&s->cuda), true, "realized", &err);
+    if (err) {
+        error_propagate(errp, err);
+        return;
     }
     sysbus_dev = SYS_BUS_DEVICE(&s->cuda);
     memory_region_add_subregion(&s->bar, 0x16000,
@@ -144,12 +145,11 @@ static int macio_common_initfn(PCIDevice *d)
 
     macio_bar_setup(s);
     pci_register_bar(d, 0, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->bar);
-
-    return 0;
 }
 
-static int macio_initfn_ide(MacIOState *s, MACIOIDEState *ide, qemu_irq irq0,
-                            qemu_irq irq1, int dmaid)
+static void macio_realize_ide(MacIOState *s, MACIOIDEState *ide,
+                              qemu_irq irq0, qemu_irq irq1, int dmaid,
+                              Error **errp)
 {
     SysBusDevice *sysbus_dev;
 
@@ -157,27 +157,31 @@ static int macio_initfn_ide(MacIOState *s, MACIOIDEState *ide, qemu_irq irq0,
     sysbus_connect_irq(sysbus_dev, 0, irq0);
     sysbus_connect_irq(sysbus_dev, 1, irq1);
     macio_ide_register_dma(ide, s->dbdma, dmaid);
-    return qdev_init(DEVICE(ide));
+    object_property_set_bool(OBJECT(ide), true, "realized", errp);
 }
 
-static int macio_oldworld_initfn(PCIDevice *d)
+static void macio_oldworld_realize(PCIDevice *d, Error **errp)
 {
     MacIOState *s = MACIO(d);
     OldWorldMacIOState *os = OLDWORLD_MACIO(d);
+    Error *err = NULL;
     SysBusDevice *sysbus_dev;
     int i;
     int cur_irq = 0;
-    int ret = macio_common_initfn(d);
-    if (ret < 0) {
-        return ret;
+
+    macio_common_realize(d, &err);
+    if (err) {
+        error_propagate(errp, err);
+        return;
     }
 
     sysbus_dev = SYS_BUS_DEVICE(&s->cuda);
     sysbus_connect_irq(sysbus_dev, 0, os->irqs[cur_irq++]);
 
-    ret = qdev_init(DEVICE(&os->nvram));
-    if (ret < 0) {
-        return ret;
+    object_property_set_bool(OBJECT(&os->nvram), true, "realized", &err);
+    if (err) {
+        error_propagate(errp, err);
+        return;
     }
     sysbus_dev = SYS_BUS_DEVICE(&os->nvram);
     memory_region_add_subregion(&s->bar, 0x60000,
@@ -194,13 +198,12 @@ static int macio_oldworld_initfn(PCIDevice *d)
         qemu_irq irq0 = os->irqs[cur_irq++];
         qemu_irq irq1 = os->irqs[cur_irq++];
 
-        ret = macio_initfn_ide(s, &os->ide[i], irq0, irq1, 0x16 + (i * 4));
-        if (ret < 0) {
-            return ret;
+        macio_realize_ide(s, &os->ide[i], irq0, irq1, 0x16 + (i * 4), &err);
+        if (err) {
+            error_propagate(errp, err);
+            return;
         }
     }
-
-    return 0;
 }
 
 static void macio_init_ide(MacIOState *s, MACIOIDEState *ide, size_t ide_size,
@@ -268,17 +271,20 @@ static const MemoryRegionOps timer_ops = {
     .endianness = DEVICE_LITTLE_ENDIAN,
 };
 
-static int macio_newworld_initfn(PCIDevice *d)
+static void macio_newworld_realize(PCIDevice *d, Error **errp)
 {
     MacIOState *s = MACIO(d);
     NewWorldMacIOState *ns = NEWWORLD_MACIO(d);
+    Error *err = NULL;
     SysBusDevice *sysbus_dev;
     MemoryRegion *timer_memory = NULL;
     int i;
     int cur_irq = 0;
-    int ret = macio_common_initfn(d);
-    if (ret < 0) {
-        return ret;
+
+    macio_common_realize(d, &err);
+    if (err) {
+        error_propagate(errp, err);
+        return;
     }
 
     sysbus_dev = SYS_BUS_DEVICE(&s->cuda);
@@ -294,9 +300,10 @@ static int macio_newworld_initfn(PCIDevice *d)
         qemu_irq irq0 = ns->irqs[cur_irq++];
         qemu_irq irq1 = ns->irqs[cur_irq++];
 
-        ret = macio_initfn_ide(s, &ns->ide[i], irq0, irq1, 0x16 + (i * 4));
-        if (ret < 0) {
-            return ret;
+        macio_realize_ide(s, &ns->ide[i], irq0, irq1, 0x16 + (i * 4), &err);
+        if (err) {
+            error_propagate(errp, err);
+            return;
         }
     }
 
@@ -305,8 +312,6 @@ static int macio_newworld_initfn(PCIDevice *d)
     memory_region_init_io(timer_memory, OBJECT(s), &timer_ops, NULL, "timer",
                           0x1000);
     memory_region_add_subregion(&s->bar, 0x15000, timer_memory);
-
-    return 0;
 }
 
 static void macio_newworld_init(Object *obj)
@@ -352,7 +357,7 @@ static void macio_oldworld_class_init(ObjectClass *oc, void *data)
     PCIDeviceClass *pdc = PCI_DEVICE_CLASS(oc);
     DeviceClass *dc = DEVICE_CLASS(oc);
 
-    pdc->init = macio_oldworld_initfn;
+    pdc->realize = macio_oldworld_realize;
     pdc->device_id = PCI_DEVICE_ID_APPLE_343S1201;
     dc->vmsd = &vmstate_macio_oldworld;
 }
@@ -372,7 +377,7 @@ static void macio_newworld_class_init(ObjectClass *oc, void *data)
     PCIDeviceClass *pdc = PCI_DEVICE_CLASS(oc);
     DeviceClass *dc = DEVICE_CLASS(oc);
 
-    pdc->init = macio_newworld_initfn;
+    pdc->realize = macio_newworld_realize;
     pdc->device_id = PCI_DEVICE_ID_APPLE_UNI_N_KEYL;
     dc->vmsd = &vmstate_macio_newworld;
 }
-- 
1.8.1.4

  reply	other threads:[~2015-06-03 21:45 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-03 21:45 [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03 Alexander Graf
2015-06-03 21:45 ` Alexander Graf [this message]
2015-06-03 21:53   ` [Qemu-devel] [PULL 01/40] macio: Convert to realize() Peter Maydell
2015-06-03 22:00     ` Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 02/40] dtc: Update dtc / libfdt submodule to version 1.4.0 Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 03/40] configure: Check for libfdt " Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 04/40] spapr_pci: Fix unsafe signed/unsigned comparisons Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 05/40] spapr_iommu: Disable in-kernel IOMMU tables for >4GB windows Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 06/40] spapr_iommu: Make H_PUT_TCE_INDIRECT endian-safe Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 07/40] spapr_pci: Introduce a liobn number generating macros Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 08/40] spapr_vio: " Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 09/40] spapr_pci: Define default DMA window size as a macro Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 10/40] spapr_iommu: Add separate trace points for PCI DMA operations Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 11/40] spapr_pci: Make find_phb()/find_dev() public Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 12/40] spapr_iommu: Make spapr_tce_find_by_liobn() public Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 13/40] spapr_pci: Rework device-tree rendering Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 14/40] spapr_iommu: Give unique QOM name to TCE table Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 15/40] hw/ppc/spapr_iommu: Fix the check for invalid upper bits in liobn Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 16/40] pseries: Add pseries-2.4 machine type Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 17/40] hw/ppc/spapr: Fix error message when firmware could not be loaded Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 18/40] hw/ppc/spapr: Use error_report() instead of hw_error() Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 19/40] docs: add sPAPR hotplug/dynamic-reconfiguration documentation Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 20/40] spapr_drc: initial implementation of sPAPRDRConnector device Alexander Graf
2015-07-09 14:16   ` Paolo Bonzini
2015-06-03 21:45 ` [Qemu-devel] [PULL 21/40] spapr_rtas: add get/set-power-level RTAS interfaces Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 22/40] spapr_rtas: add set-indicator RTAS interface Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 23/40] spapr_rtas: add get-sensor-state " Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 24/40] spapr: add rtas_st_buffer_direct() helper Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 25/40] spapr_rtas: add ibm, configure-connector RTAS interface Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 26/40] spapr_events: re-use EPOW event infrastructure for hotplug events Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 27/40] spapr_events: event-scan RTAS interface Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 28/40] spapr_drc: add spapr_drc_populate_dt() Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 29/40] spapr_pci: add dynamic-reconfiguration option for spapr-pci-host-bridge Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 30/40] spapr_pci: create DRConnectors for each PCI slot during PHB realize Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 31/40] pci: make pci_bar useable outside pci.c Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 32/40] spapr_pci: enable basic hotplug operations Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 33/40] spapr_pci: emit hotplug add/remove events during hotplug Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 34/40] machine: add default_ram_size to machine class Alexander Graf
2015-06-05  7:27   ` Laurent Desnogues
2015-06-03 21:45 ` [Qemu-devel] [PULL 35/40] spapr: override default ram size to 512MB Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 36/40] pseries: Enable in-kernel H_LOGICAL_CI_{LOAD, STORE} implementations Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 37/40] Add David Gibson for sPAPR in MAINTAINERS file Alexander Graf
2015-11-18 20:46   ` Andreas Färber
2015-11-18 20:51     ` Eric Blake
2015-11-18 20:58       ` Andreas Färber
2015-06-03 21:45 ` [Qemu-devel] [PULL 38/40] tci: do not use CPUArchState in tcg-target.h Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 39/40] tcg: add TCG_TARGET_TLB_DISPLACEMENT_BITS Alexander Graf
2015-06-03 21:45 ` [Qemu-devel] [PULL 40/40] softmmu: support up to 12 MMU modes Alexander Graf
2015-06-04 17:28 ` [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03 Peter Maydell
2015-06-05 13:33 ` Peter Maydell
2015-06-05 14:35   ` Paolo Bonzini
2015-06-05 14:40     ` Peter Maydell
2015-06-05 15:02       ` Paolo Bonzini
2015-06-05 15:08         ` Peter Maydell
2015-06-05 15:20           ` Paolo Bonzini
2015-06-05 15:45             ` Peter Maydell
2015-06-05 15:55               ` [Qemu-devel] undefined behavior of signed left shifts (was Re: [PULL 00/40] ppc patch queue 2015-06-03) Paolo Bonzini
2015-06-05 17:21                 ` Joseph Myers
2015-06-05 17:33                 ` Peter Maydell
2015-07-21 11:42             ` [Qemu-devel] [PULL 00/40] ppc patch queue 2015-06-03 Peter Maydell
2015-07-21 23:32               ` Michael Roth
2015-06-05 15:24   ` Eric Blake

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1433367941-119488-2-git-send-email-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=armbru@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).