From patchwork Thu Oct 13 19:45:18 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benoit Canet X-Patchwork-Id: 119595 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 75AF6B7150 for ; Fri, 14 Oct 2011 07:07:55 +1100 (EST) Received: from localhost ([::1]:41942 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1REROB-0004Gi-Uo for incoming@patchwork.ozlabs.org; Thu, 13 Oct 2011 15:56:23 -0400 Received: from eggs.gnu.org ([140.186.70.92]:54068) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RERNW-0002Gj-B8 for qemu-devel@nongnu.org; Thu, 13 Oct 2011 15:55:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RERNP-0007sr-OM for qemu-devel@nongnu.org; Thu, 13 Oct 2011 15:55:42 -0400 Received: from mail-wy0-f173.google.com ([74.125.82.173]:42077) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RERNP-0007rE-Ji for qemu-devel@nongnu.org; Thu, 13 Oct 2011 15:55:35 -0400 Received: by mail-wy0-f173.google.com with SMTP id 22so2550291wyh.4 for ; Thu, 13 Oct 2011 12:55:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=LKrm304lJf+6nWrwlGJQxzBTK4aTjgivUVLQXrhYc/M=; b=qd//oZjtJP5KRwLpESjExIdmqN7BVw4Sv5aTFPzRQFXNm12kOx+j70dsPRHQmf+Pny IOGBHBnlwexibH6SncC8yT5/RQlv7k4T6HHh1ReOTgLzCkzvMmJQYcELtfZVrvWWOZL3 OBI+3fJ2FpaYUi6+3VbEOhlx4M3cpUFD34CiY= Received: by 10.227.145.134 with SMTP id d6mr1849059wbv.66.1318535735092; Thu, 13 Oct 2011 12:55:35 -0700 (PDT) Received: from localhost.localdomain (AMontsouris-651-1-196-196.w83-202.abo.wanadoo.fr. [83.202.59.196]) by mx.google.com with ESMTPS id l9sm8738894wba.5.2011.10.13.12.55.33 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 13 Oct 2011 12:55:34 -0700 (PDT) From: =?UTF-8?q?Beno=C3=AEt=20Canet?= To: qemu-devel@nongnu.org Date: Thu, 13 Oct 2011 21:45:18 +0200 Message-Id: <1318535119-979-7-git-send-email-benoit.canet@gmail.com> X-Mailer: git-send-email 1.7.5.4 In-Reply-To: <1318535119-979-1-git-send-email-benoit.canet@gmail.com> References: <1318535119-979-1-git-send-email-benoit.canet@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 74.125.82.173 Cc: =?UTF-8?q?Beno=C3=AEt=20Canet?= Subject: [Qemu-devel] [PATCH 6/7] stellaris: convert adc to memory API 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 --- hw/stellaris.c | 30 ++++++++++++------------------ 1 files changed, 12 insertions(+), 18 deletions(-) diff --git a/hw/stellaris.c b/hw/stellaris.c index 8061e74..8e1ffc6 100644 --- a/hw/stellaris.c +++ b/hw/stellaris.c @@ -892,6 +892,7 @@ static int stellaris_i2c_init(SysBusDevice * dev) typedef struct { SysBusDevice busdev; + MemoryRegion iomem; uint32_t actss; uint32_t ris; uint32_t im; @@ -992,7 +993,8 @@ static void stellaris_adc_reset(stellaris_adc_state *s) } } -static uint32_t stellaris_adc_read(void *opaque, target_phys_addr_t offset) +static uint64_t stellaris_adc_read(void *opaque, target_phys_addr_t offset, + unsigned size) { stellaris_adc_state *s = (stellaris_adc_state *)opaque; @@ -1040,7 +1042,7 @@ static uint32_t stellaris_adc_read(void *opaque, target_phys_addr_t offset) } static void stellaris_adc_write(void *opaque, target_phys_addr_t offset, - uint32_t value) + uint64_t value, unsigned size) { stellaris_adc_state *s = (stellaris_adc_state *)opaque; @@ -1054,7 +1056,7 @@ static void stellaris_adc_write(void *opaque, target_phys_addr_t offset, return; case 0x04: /* SSCTL */ if (value != 6) { - hw_error("ADC: Unimplemented sequence %x\n", + hw_error("ADC: Unimplemented sequence %lx\n", value); } s->ssctl[n] = value; @@ -1097,16 +1099,10 @@ static void stellaris_adc_write(void *opaque, target_phys_addr_t offset, stellaris_adc_update(s); } -static CPUReadMemoryFunc * const stellaris_adc_readfn[] = { - stellaris_adc_read, - stellaris_adc_read, - stellaris_adc_read -}; - -static CPUWriteMemoryFunc * const stellaris_adc_writefn[] = { - stellaris_adc_write, - stellaris_adc_write, - stellaris_adc_write +static const MemoryRegionOps stellaris_adc_ops = { + .read = stellaris_adc_read, + .write = stellaris_adc_write, + .endianness = DEVICE_NATIVE_ENDIAN, }; static const VMStateDescription vmstate_stellaris_adc = { @@ -1147,17 +1143,15 @@ static const VMStateDescription vmstate_stellaris_adc = { static int stellaris_adc_init(SysBusDevice *dev) { stellaris_adc_state *s = FROM_SYSBUS(stellaris_adc_state, dev); - int iomemtype; int n; for (n = 0; n < 4; n++) { sysbus_init_irq(dev, &s->irq[n]); } - iomemtype = cpu_register_io_memory(stellaris_adc_readfn, - stellaris_adc_writefn, s, - DEVICE_NATIVE_ENDIAN); - sysbus_init_mmio(dev, 0x1000, iomemtype); + memory_region_init_io(&s->iomem, &stellaris_adc_ops, s, + "adc", 0x1000); + sysbus_init_mmio_region(dev, &s->iomem); stellaris_adc_reset(s); qdev_init_gpio_in(&dev->qdev, stellaris_adc_trigger, 1); vmstate_register(&dev->qdev, -1, &vmstate_stellaris_adc, s);