qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: BALATON Zoltan <balaton@eik.bme.hu>
Cc: QEMU Developers <qemu-devel@nongnu.org>,
	QEMU Trivial <qemu-trivial@nongnu.org>,
	Aurelien Jarno <aurelien@aurel32.net>
Subject: Re: [Qemu-devel] [PATCH v2 04/14] sm501: Get rid of base address in draw_hwc_line
Date: Thu, 2 Mar 2017 19:14:06 +0000	[thread overview]
Message-ID: <CAFEAcA-01wdWYs_F-Maxoq7Wa=Xo1J1iaheEQFUdVL1G4PDG7w@mail.gmail.com> (raw)
In-Reply-To: <7c6e8c071cbd47d6d9065635e97dd88a7197b5be.1488068248.git.balaton@eik.bme.hu>

On 25 February 2017 at 18:23, BALATON Zoltan <balaton@eik.bme.hu> wrote:
> 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 <balaton@eik.bme.hu>
> ---
>  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;
> --
> 2.7.4

(The data sheet suggests that the hardware cursor can also be in
"external memory", but it looks like we never supported that
previously and I can't figure out how it is supposed to work either.
So no problem with restricting it to be in the local video ram blob.)

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM

  reply	other threads:[~2017-03-02 19:14 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-26  0:17 [Qemu-devel] [PATCH v2 00/14] Improvements for SM501 display controller emulation BALATON Zoltan
2017-02-25 18:23 ` [Qemu-devel] [PATCH v2 04/14] sm501: Get rid of base address in draw_hwc_line BALATON Zoltan
2017-03-02 19:14   ` Peter Maydell [this message]
2017-03-02 20:06     ` BALATON Zoltan
2017-02-25 18:31 ` [Qemu-devel] [PATCH v2 05/14] sm501: Add emulation of chip connected via PCI BALATON Zoltan
2017-03-02 19:22   ` Peter Maydell
2017-03-02 20:13     ` BALATON Zoltan
2017-03-02 20:43       ` Peter Maydell
2017-03-03  1:53         ` BALATON Zoltan
2017-02-25 18:46 ` [Qemu-devel] [PATCH v2 07/14] sm501: Fix device endianness BALATON Zoltan
2017-03-02 21:04   ` Peter Maydell
2017-03-03  2:15     ` BALATON Zoltan
2017-03-03 18:49       ` Peter Maydell
2017-03-03 20:11         ` BALATON Zoltan
2017-03-04 12:40           ` Peter Maydell
2017-03-04 22:58             ` BALATON Zoltan
2017-03-06 10:32               ` Peter Maydell
2017-03-06 18:46                 ` BALATON Zoltan
2017-02-25 19:19 ` [Qemu-devel] [PATCH v2 09/14] sm501: Misc clean ups BALATON Zoltan
2017-03-02 19:35   ` Peter Maydell
2017-02-25 19:25 ` [Qemu-devel] [PATCH v2 10/14] sm501: Add support for panel layer BALATON Zoltan
2017-03-02 19:44   ` Peter Maydell
2017-03-02 20:15     ` BALATON Zoltan
2017-03-02 20:46       ` Peter Maydell
2017-02-25 21:47 ` [Qemu-devel] [PATCH v2 12/14] sm501: Implement reading 2D engine registers BALATON Zoltan
2017-03-02 20:00   ` Peter Maydell
2017-03-02 20:22     ` BALATON Zoltan
2017-03-02 20:50       ` Peter Maydell
2017-02-25 23:53 ` [Qemu-devel] [PATCH v2 13/14] sm501: Add reset function and vmstate descriptor BALATON Zoltan
2017-03-02 19:51   ` Peter Maydell
2017-03-02 20:18     ` BALATON Zoltan
2017-03-02 20:49       ` Peter Maydell
2017-03-02 20:55         ` BALATON Zoltan
2017-03-02 21:05           ` BALATON Zoltan
2017-03-02 21:06           ` Peter Maydell
2017-02-26  0:31 ` [Qemu-devel] [PATCH v2 14/14] ppc: Add SM501 device in config for ppc and ppcemb targets BALATON Zoltan
2017-02-26  0:31 ` [Qemu-devel] [PATCH v2 06/14] sm501: Add missing arbitration control register BALATON Zoltan
2017-03-02 20:08   ` Peter Maydell
2017-03-02 20:09     ` Peter Maydell
2017-02-26  0:31 ` [Qemu-devel] [PATCH v2 02/14] sm501: Use defines instead of constants where available BALATON Zoltan
2017-03-02 18:53   ` Peter Maydell
2017-03-02 19:03     ` Peter Maydell
2017-03-02 19:58       ` BALATON Zoltan
2017-02-26  0:31 ` [Qemu-devel] [PATCH v2 11/14] sm501: Add some more missing registers BALATON Zoltan
2017-03-02 19:59   ` Peter Maydell
2017-03-02 20:21     ` BALATON Zoltan
2017-02-26  0:31 ` [Qemu-devel] [PATCH v2 08/14] sm501: Fix hardware cursor BALATON Zoltan
2017-03-02 19:35   ` Peter Maydell
2017-02-26  0:31 ` [Qemu-devel] [PATCH v2 03/14] sm501: QOMify BALATON Zoltan
2017-03-02 19:55   ` Peter Maydell
2017-02-26  0:31 ` [Qemu-devel] [PATCH v2 01/14] sm501: Fixed code style and a few typos in comments BALATON Zoltan
2017-02-27 18:11 ` [Qemu-devel] [PATCH v2 00/14] Improvements for SM501 display controller emulation Michael Tokarev
2017-02-27 19:03   ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAFEAcA-01wdWYs_F-Maxoq7Wa=Xo1J1iaheEQFUdVL1G4PDG7w@mail.gmail.com' \
    --to=peter.maydell@linaro.org \
    --cc=aurelien@aurel32.net \
    --cc=balaton@eik.bme.hu \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-trivial@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).