From patchwork Sun Jan 13 23:54:58 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [RFC, ppc-next, v3, 04/10] macio: Delay qdev init until all fields are initialized Date: Sun, 13 Jan 2013 13:54:58 -0000 From: =?utf-8?q?Andreas_F=C3=A4rber_=3Cafaerber=40suse=2Ede=3E?= X-Patchwork-Id: 211692 Message-Id: <1358121304-21345-5-git-send-email-afaerber@suse.de> To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, agraf@suse.de, =?UTF-8?q?Andreas=20F=C3=A4rber?= , armbru@redhat.com This turns macio_bar_setup() into an implementation detail of the qdev initfn, to be removed step by step. Signed-off-by: Andreas Färber --- hw/macio.c | 11 ++++++++--- 1 Datei geändert, 8 Zeilen hinzugefügt(+), 3 Zeilen entfernt(-) diff --git a/hw/macio.c b/hw/macio.c index 770e3bd..8b4b48d 100644 --- a/hw/macio.c +++ b/hw/macio.c @@ -82,7 +82,13 @@ static void macio_bar_setup(MacIOState *macio_state) static int macio_initfn(PCIDevice *d) { + MacIOState *s = MACIO(d); + d->config[0x3d] = 0x01; // interrupt on pin 1 + + macio_bar_setup(s); + pci_register_bar(d, 0, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->bar); + return 0; } @@ -127,7 +133,7 @@ void macio_init (PCIBus *bus, int device_id, int is_oldworld, MacIOState *macio_state; int i; - d = pci_create_simple(bus, -1, TYPE_MACIO); + d = pci_create(bus, -1, TYPE_MACIO); macio_state = MACIO(d); macio_state->is_oldworld = is_oldworld; @@ -148,6 +154,5 @@ void macio_init (PCIBus *bus, int device_id, int is_oldworld, pci_config_set_device_id(d->config, device_id); - macio_bar_setup(macio_state); - pci_register_bar(d, 0, PCI_BASE_ADDRESS_SPACE_MEMORY, &macio_state->bar); + qdev_init_nofail(DEVICE(d)); }