From patchwork Wed Apr 3 05:17:08 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Crosthwaite X-Patchwork-Id: 233242 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 33A3E2C00AE for ; Wed, 3 Apr 2013 16:22:57 +1100 (EST) Received: from localhost ([::1]:50748 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UNG9v-00064O-CG for incoming@patchwork.ozlabs.org; Wed, 03 Apr 2013 01:22:55 -0400 Received: from eggs.gnu.org ([208.118.235.92]:39488) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UNG9W-0005xj-Vr for qemu-devel@nongnu.org; Wed, 03 Apr 2013 01:22:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UNG9V-0003Wm-Sq for qemu-devel@nongnu.org; Wed, 03 Apr 2013 01:22:30 -0400 Received: from mail-pb0-f41.google.com ([209.85.160.41]:44556) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UNG9V-0003Wi-O1 for qemu-devel@nongnu.org; Wed, 03 Apr 2013 01:22:29 -0400 Received: by mail-pb0-f41.google.com with SMTP id mc17so650723pbc.14 for ; Tue, 02 Apr 2013 22:22:29 -0700 (PDT) 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=nw19ZIpDpED0GZlxOhHCXpQzt/pPy9LEbn30SMrvFAQ=; b=Fta433HFh2LpxW4BFeU227gbvImqN2w4GP2qwBrOOue+HmrzNbEr8YkrpWzXIgcf1N YbfT9k0dc0hZQZxIklE0OnTn95V/2tmnmeAiPomoW7FveuA2mxtTuz0x4fjz3fxX6T6A 3Xy0qThY4ttm+LkXV01u3OGgvP0mBXdRrsyC1lySuDsRiGdOAH+4Ls4c8m1IHL4NxrrZ ZkhbqV020th9pvu5To4VE/wvJ1feUYeVt280kz+aTZqShjfKGnkCqsYEOpCOpzwWR9nN CQrU9YgfknvJelfuV93eZ0ZocqCesAbvDUl3tgjN09dDSW8Do3MzJ1JeszU6+U0BcoSQ kPTg== X-Received: by 10.68.176.68 with SMTP id cg4mr454983pbc.49.1364966549103; Tue, 02 Apr 2013 22:22:29 -0700 (PDT) Received: from localhost ([149.199.62.254]) by mx.google.com with ESMTPS id hw16sm5304124pab.19.2013.04.02.22.22.26 (version=TLSv1.1 cipher=RC4-SHA bits=128/128); Tue, 02 Apr 2013 22:22:28 -0700 (PDT) From: Peter Crosthwaite To: qemu-devel@nongnu.org, edgar.iglesias@gmail.com Date: Wed, 3 Apr 2013 15:17:08 +1000 Message-Id: <13506f726e50f7349c242d165247b0fe5dd04380.1364965814.git.peter.crosthwaite@xilinx.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: References: In-Reply-To: References: X-Gm-Message-State: ALoCoQnok9VEd7uSyNtSFD845UkoqVoaO//CsHubZ7fNRl3PaG7PwH/13D7njnET3xoo2VkdLoRb X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 209.85.160.41 Cc: Peter Crosthwaite Subject: [Qemu-devel] [PATCH v5 08/16] xilinx_axidma: 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. I'm going with Andreas suggestion to move the sysbus foo to Object::init for early IRQ visibility. Signed-off-by: Peter Crosthwaite Acked-by: Edgar E. Iglesias --- hw/xilinx_axidma.c | 25 ++++++++++++------------- 1 files changed, 12 insertions(+), 13 deletions(-) diff --git a/hw/xilinx_axidma.c b/hw/xilinx_axidma.c index ac62245..2c95765 100644 --- a/hw/xilinx_axidma.c +++ b/hw/xilinx_axidma.c @@ -475,33 +475,33 @@ static const MemoryRegionOps axidma_ops = { .endianness = DEVICE_NATIVE_ENDIAN, }; -static int xilinx_axidma_init(SysBusDevice *dev) +static void xilinx_axidma_realize(DeviceState *dev, Error **errp) { XilinxAXIDMA *s = XILINX_AXI_DMA(dev); int i; - sysbus_init_irq(dev, &s->streams[0].irq); - sysbus_init_irq(dev, &s->streams[1].irq); - - memory_region_init_io(&s->iomem, &axidma_ops, s, - "xlnx.axi-dma", R_MAX * 4 * 2); - sysbus_init_mmio(dev, &s->iomem); - for (i = 0; i < 2; i++) { s->streams[i].nr = i; s->streams[i].bh = qemu_bh_new(timer_hit, &s->streams[i]); s->streams[i].ptimer = ptimer_init(s->streams[i].bh); ptimer_set_freq(s->streams[i].ptimer, s->freqhz); } - return 0; } -static void xilinx_axidma_initfn(Object *obj) +static void xilinx_axidma_init(Object *obj) { XilinxAXIDMA *s = XILINX_AXI_DMA(obj); + SysBusDevice *sbd = SYS_BUS_DEVICE(obj); object_property_add_link(obj, "axistream-connected", TYPE_STREAM_SLAVE, (Object **) &s->tx_dev, NULL); + + sysbus_init_irq(sbd, &s->streams[0].irq); + sysbus_init_irq(sbd, &s->streams[1].irq); + + memory_region_init_io(&s->iomem, &axidma_ops, s, + "xlnx.axi-dma", R_MAX * 4 * 2); + sysbus_init_mmio(sbd, &s->iomem); } static Property axidma_properties[] = { @@ -512,10 +512,9 @@ static Property axidma_properties[] = { static void axidma_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_axidma_init; + dc->realize = xilinx_axidma_realize, dc->reset = xilinx_axidma_reset; dc->props = axidma_properties; ssc->push = axidma_push; @@ -526,7 +525,7 @@ static const TypeInfo axidma_info = { .parent = TYPE_SYS_BUS_DEVICE, .instance_size = sizeof(XilinxAXIDMA), .class_init = axidma_class_init, - .instance_init = xilinx_axidma_initfn, + .instance_init = xilinx_axidma_init, .interfaces = (InterfaceInfo[]) { { TYPE_STREAM_SLAVE }, { }