From patchwork Sat Feb 25 18:23:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: BALATON Zoltan X-Patchwork-Id: 732464 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vW5Zx1V2nz9s2G for ; Sun, 26 Feb 2017 11:39:53 +1100 (AEDT) Received: from localhost ([::1]:44780 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1chmsQ-0001hA-KC for incoming@patchwork.ozlabs.org; Sat, 25 Feb 2017 19:39:50 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42510) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1chmkY-0001Dy-GF for qemu-devel@nongnu.org; Sat, 25 Feb 2017 19:31:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1chmkV-0005v5-CE for qemu-devel@nongnu.org; Sat, 25 Feb 2017 19:31:42 -0500 Received: from zero.eik.bme.hu ([152.66.115.2]:32619) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1chmkU-0005tH-WD; Sat, 25 Feb 2017 19:31:39 -0500 Received: from zero.eik.bme.hu (blah.eik.bme.hu [152.66.115.182]) by localhost (Postfix) with SMTP id 2D34674596D; Sun, 26 Feb 2017 01:31:30 +0100 (CET) Received: by zero.eik.bme.hu (Postfix, from userid 432) id 77061745960; Sun, 26 Feb 2017 01:31:29 +0100 (CET) Message-Id: <7c6e8c071cbd47d6d9065635e97dd88a7197b5be.1488068248.git.balaton@eik.bme.hu> In-Reply-To: References: From: BALATON Zoltan Date: Sat, 25 Feb 2017 19:23:50 +0100 To: qemu-devel@nongnu.org, qemu-trivial@nongnu.org X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x [fuzzy] X-Received-From: 152.66.115.2 Subject: [Qemu-devel] [PATCH v2 04/14] sm501: Get rid of base address in draw_hwc_line X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Aurelien Jarno Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Do not use the base address to access data in local memory. This is in preparation to allow chip connected via PCI where base address depends on where the BAR is mapped so it will be unknown. Signed-off-by: BALATON Zoltan Reviewed-by: Peter Maydell --- hw/display/sm501.c | 6 ++---- hw/display/sm501_template.h | 8 ++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/hw/display/sm501.c b/hw/display/sm501.c index 22cac97..1cda127 100644 --- a/hw/display/sm501.c +++ b/hw/display/sm501.c @@ -460,7 +460,6 @@ typedef struct SM501State { QemuConsole *con; /* status & internal resources */ - hwaddr base; uint32_t local_mem_size_index; uint8_t *local_mem; MemoryRegion local_mem_region; @@ -1400,10 +1399,9 @@ static const GraphicHwOps sm501_ops = { .gfx_update = sm501_update_display, }; -static void sm501_init(SM501State *s, DeviceState *dev, uint32_t base, +static void sm501_init(SM501State *s, DeviceState *dev, uint32_t local_mem_bytes) { - s->base = base; s->local_mem_size_index = get_local_mem_size_index(local_mem_bytes); SM501_DPRINTF("sm501 local mem size=%x. index=%d\n", get_local_mem_size(s), s->local_mem_size_index); @@ -1461,7 +1459,7 @@ static void sm501_realize_sysbus(DeviceState *dev, Error **errp) SysBusDevice *sbd = SYS_BUS_DEVICE(dev); DeviceState *usb_dev; - sm501_init(&s->state, dev, s->base, s->vram_size); + sm501_init(&s->state, dev, s->vram_size); sysbus_init_mmio(sbd, &s->state.local_mem_region); sysbus_init_mmio(sbd, &s->state.mmio_region); diff --git a/hw/display/sm501_template.h b/hw/display/sm501_template.h index 16e500b..832ee61 100644 --- a/hw/display/sm501_template.h +++ b/hw/display/sm501_template.h @@ -103,13 +103,13 @@ static void glue(draw_hwc_line_, PIXEL_NAME)(SM501State *s, int crt, uint8_t *palette, int c_y, uint8_t *d, int width) { int x, i; - uint8_t bitset = 0; + uint8_t *pixval, bitset = 0; /* get hardware cursor pattern */ uint32_t cursor_addr = get_hwc_address(s, crt); assert(0 <= c_y && c_y < SM501_HWC_HEIGHT); cursor_addr += SM501_HWC_WIDTH * c_y / 4; /* 4 pixels per byte */ - cursor_addr += s->base; + pixval = s->local_mem + cursor_addr; /* get cursor position */ x = get_hwc_x(s, crt); @@ -120,8 +120,8 @@ static void glue(draw_hwc_line_, PIXEL_NAME)(SM501State *s, int crt, /* get pixel value */ if (i % 4 == 0) { - bitset = ldub_phys(&address_space_memory, cursor_addr); - cursor_addr++; + bitset = ldub_p(pixval); + pixval++; } v = bitset & 3; bitset >>= 2;