From patchwork Mon Feb 25 08:50:12 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Crosthwaite X-Patchwork-Id: 222883 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 40E3C2C0296 for ; Mon, 25 Feb 2013 20:47:21 +1100 (EST) Received: from localhost ([::1]:55342 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9tmg-0001AG-VQ for incoming@patchwork.ozlabs.org; Mon, 25 Feb 2013 03:51:42 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43570) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9tmG-0000Pj-Ll for qemu-devel@nongnu.org; Mon, 25 Feb 2013 03:51:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U9tmC-0002yz-Cr for qemu-devel@nongnu.org; Mon, 25 Feb 2013 03:51:16 -0500 Received: from mail-da0-f53.google.com ([209.85.210.53]:50711) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9tmC-0002yo-6t for qemu-devel@nongnu.org; Mon, 25 Feb 2013 03:51:12 -0500 Received: by mail-da0-f53.google.com with SMTP id n34so656782dal.12 for ; Mon, 25 Feb 2013 00:51:11 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:sender:from:to:cc:subject:date:message-id:x-mailer :in-reply-to:references:in-reply-to:references:x-gm-message-state; bh=M9IZpxWSPj0DMn3HWPevd2jVWVE1ZHCAm5bDjDUHxNo=; b=mS7xR9ndHPveUN2m7er7aiRbvsJCUIaiUawl5VqfGVZMcvK5OrPz0Ayv8K22QqMCDi nE6kBpaKnrUdapLa75d88xkjsUhgWJMDKqUbxqiwTK70WVsrI6TpIgoC3oz1QJxn6w0T Ms8NG1h0ZV8hK/K6uD7dDoh0SI3E8Gw+739yWcvGH99U7odqWsw0QNnLPoxAJ/NH8eS4 3tgX+BpSaJCnSf6cRbfDsyGvviSVqBC0ZmkLXWY281xXVQvv3jZMMQr6GnNju/ZbmZ7o sHG3B8K3cYp6A9TvhJuG88OaX8jmiiwmD16JmhHywgHhb6P9L4Q1Jsz7nqf2C3o9hAlW ekWw== X-Received: by 10.66.79.135 with SMTP id j7mr18166990pax.0.1361782271297; Mon, 25 Feb 2013 00:51:11 -0800 (PST) Received: from localhost ([1.134.54.163]) by mx.google.com with ESMTPS id a10sm12051910pbq.29.2013.02.25.00.51.07 (version=TLSv1.1 cipher=RC4-SHA bits=128/128); Mon, 25 Feb 2013 00:51:10 -0800 (PST) From: Peter Crosthwaite To: qemu-devel@nongnu.org Date: Mon, 25 Feb 2013 18:50:12 +1000 Message-Id: X-Mailer: git-send-email 1.7.0.4 In-Reply-To: References: In-Reply-To: References: X-Gm-Message-State: ALoCoQlh4auxZjb7FJ8vdQYylH4qddQlZ5fbra6ZVxstN9pJ2O/CHGo4CD6uPoCygngjs1ZVe329 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 209.85.210.53 Cc: edgar.iglesias@gmail.com, Peter Crosthwaite , afaerber@suse.de, peter.maydell@linaro.org Subject: [Qemu-devel] [PATCH v2 4/8] xilinx_axienet: converted init->realize X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org The prescribed transition from SysBusDevice::init to Device::realize. Im going with Andreas suggestion to move the sysbus foo to Object::init for early IRQ visibility. Signed-off-by: Peter Crosthwaite Reviewed-by: Andreas Färber --- hw/xilinx_axienet.c | 24 +++++++++++------------- 1 files changed, 11 insertions(+), 13 deletions(-) diff --git a/hw/xilinx_axienet.c b/hw/xilinx_axienet.c index 3932846..27d94bd 100644 --- a/hw/xilinx_axienet.c +++ b/hw/xilinx_axienet.c @@ -850,18 +850,13 @@ static NetClientInfo net_xilinx_enet_info = { .cleanup = eth_cleanup, }; -static int xilinx_enet_init(SysBusDevice *dev) +static void xilinx_enet_realize(DeviceState *dev, Error **errp) { XilinxAXIEnet *s = XILINX_AXI_ENET(dev); - sysbus_init_irq(dev, &s->irq); - - memory_region_init_io(&s->iomem, &enet_ops, s, "enet", 0x40000); - sysbus_init_mmio(dev, &s->iomem); - qemu_macaddr_default_if_unset(&s->conf.macaddr); s->nic = qemu_new_nic(&net_xilinx_enet_info, &s->conf, - object_get_typename(OBJECT(dev)), dev->qdev.id, s); + object_get_typename(OBJECT(dev)), dev->id, s); qemu_format_nic_info_str(qemu_get_queue(s->nic), s->conf.macaddr.a); tdk_init(&s->TEMAC.phy); @@ -870,18 +865,22 @@ static int xilinx_enet_init(SysBusDevice *dev) s->TEMAC.parent = s; s->rxmem = g_malloc(s->c_rxmem); - - return 0; } -static void xilinx_enet_initfn(Object *obj) +static void xilinx_enet_init(Object *obj) { XilinxAXIEnet *s = XILINX_AXI_ENET(obj); + SysBusDevice *sbd = SYS_BUS_DEVICE(obj); Error *errp = NULL; object_property_add_link(obj, "axistream-connected", TYPE_STREAM_SLAVE, (Object **) &s->tx_dev, &errp); assert_no_error(errp); + + sysbus_init_irq(sbd, &s->irq); + + memory_region_init_io(&s->iomem, &enet_ops, s, "enet", 0x40000); + sysbus_init_mmio(sbd, &s->iomem); } static Property xilinx_enet_properties[] = { @@ -895,10 +894,9 @@ static Property xilinx_enet_properties[] = { static void xilinx_enet_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass); StreamSlaveClass *ssc = STREAM_SLAVE_CLASS(klass); - k->init = xilinx_enet_init; + dc->realize = xilinx_enet_realize; dc->props = xilinx_enet_properties; dc->reset = xilinx_axienet_reset; ssc->push = axienet_stream_push; @@ -909,7 +907,7 @@ static const TypeInfo xilinx_enet_info = { .parent = TYPE_SYS_BUS_DEVICE, .instance_size = sizeof(XilinxAXIEnet), .class_init = xilinx_enet_class_init, - .instance_init = xilinx_enet_initfn, + .instance_init = xilinx_enet_init, .interfaces = (InterfaceInfo[]) { { TYPE_STREAM_SLAVE }, { }