From: "Andreas Färber" <afaerber@suse.de>
To: Alexander Graf <agraf@suse.de>
Cc: Kevin Wolf <kwolf@redhat.com>,
programmingkidx@gmail.com, mark.cave-ayland@ilande.co.uk,
qemu-ppc@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 12/15] PPC: dbdma: Move processing to io
Date: Sun, 30 Jun 2013 08:48:10 +0200 [thread overview]
Message-ID: <51CFD4AA.3060302@suse.de> (raw)
In-Reply-To: <1372555629-17976-13-git-send-email-agraf@suse.de>
Am 30.06.2013 03:27, schrieb Alexander Graf:
> Soon we will introduce intermediate processing pauses which will
> allow the bottom half to restart a DMA request that couldn't be
> fulfilled yet.
>
> For that to work, move the processing variable into the io struct
> which is what DMA providers work with.
>
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
> hw/misc/macio/mac_dbdma.c | 10 ++++++----
> include/hw/ppc/mac_dbdma.h | 3 ++-
> 2 files changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/hw/misc/macio/mac_dbdma.c b/hw/misc/macio/mac_dbdma.c
> index 324ac54..91b9eaf 100644
> --- a/hw/misc/macio/mac_dbdma.c
> +++ b/hw/misc/macio/mac_dbdma.c
> @@ -275,7 +275,9 @@ static void dbdma_end(DBDMA_io *io)
> conditional_branch(ch);
>
> wait:
> - ch->processing = 0;
> + /* Indicate that we're ready for a new DMA round */
> + ch->io.processing = 0;
> +
> if ((ch->regs[DBDMA_STATUS] & RUN) &&
> (ch->regs[DBDMA_STATUS] & ACTIVE))
> channel_run(ch);
> @@ -301,7 +303,7 @@ static void start_output(DBDMA_channel *ch, int key, uint32_t addr,
> ch->io.is_last = is_last;
> ch->io.dma_end = dbdma_end;
> ch->io.is_dma_out = 1;
> - ch->processing = 1;
> + ch->io.processing = 1;
> if (ch->rw) {
> ch->rw(&ch->io);
> }
> @@ -327,7 +329,7 @@ static void start_input(DBDMA_channel *ch, int key, uint32_t addr,
> ch->io.is_last = is_last;
> ch->io.dma_end = dbdma_end;
> ch->io.is_dma_out = 0;
> - ch->processing = 1;
> + ch->io.processing = 1;
> if (ch->rw) {
> ch->rw(&ch->io);
> }
> @@ -525,7 +527,7 @@ static void DBDMA_run(DBDMAState *s)
> for (channel = 0; channel < DBDMA_CHANNELS; channel++) {
> DBDMA_channel *ch = &s->channels[channel];
> uint32_t status = ch->regs[DBDMA_STATUS];
> - if (!ch->processing && (status & RUN) && (status & ACTIVE)) {
> + if (!ch->io.processing && (status & RUN) && (status & ACTIVE)) {
> channel_run(ch);
> }
> }
> diff --git a/include/hw/ppc/mac_dbdma.h b/include/hw/ppc/mac_dbdma.h
> index eb8e0f0..8ad1b6e 100644
> --- a/include/hw/ppc/mac_dbdma.h
> +++ b/include/hw/ppc/mac_dbdma.h
> @@ -37,6 +37,8 @@ struct DBDMA_io {
> int is_last;
> int is_dma_out;
> DBDMA_end dma_end;
> + /* DMA is in progress, don't start another one */
> + int processing;
Can it be changed to bool (its users to true/false) while at it?
Andreas
> };
>
> /*
> @@ -148,7 +150,6 @@ typedef struct DBDMA_channel {
> DBDMA_rw rw;
> DBDMA_flush flush;
> dbdma_cmd current;
> - int processing;
> } DBDMA_channel;
>
> typedef struct {
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
next prev parent reply other threads:[~2013-06-30 6:48 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-30 1:26 [Qemu-devel] [PATCH 00/15] PPC: Mac OS X guest bringup Alexander Graf
2013-06-30 1:26 ` [Qemu-devel] [PATCH 01/15] PPC: Mac: Fix guest exported tbfreq values Alexander Graf
2013-06-30 1:26 ` [Qemu-devel] [PATCH 02/15] PPC: g3beige: Move secondary IDE bus to mac-io Alexander Graf
2013-06-30 6:33 ` Andreas Färber
2013-06-30 23:18 ` Alexander Graf
2013-06-30 1:26 ` [Qemu-devel] [PATCH 03/15] PPC: Macio: Replace tabs with spaces Alexander Graf
2013-06-30 1:26 ` [Qemu-devel] [PATCH 04/15] PPC: dbdma: " Alexander Graf
2013-06-30 6:35 ` Andreas Färber
2013-06-30 11:21 ` Alexander Graf
2013-06-30 1:26 ` [Qemu-devel] [PATCH 05/15] PPC: Mac: Add debug prints in macio and dbdma code Alexander Graf
2013-06-30 6:42 ` Andreas Färber
2013-06-30 23:30 ` Alexander Graf
2013-06-30 1:27 ` [Qemu-devel] [PATCH 06/15] PPC: dbdma: Fix debug print Alexander Graf
2013-06-30 1:27 ` [Qemu-devel] [PATCH 07/15] PPC: dbdma: Allow new commands in RUN state Alexander Graf
2013-06-30 1:27 ` [Qemu-devel] [PATCH 08/15] PPC: dbdma: Move defines into header file Alexander Graf
2013-06-30 1:27 ` [Qemu-devel] [PATCH 09/15] PPC: dbdma: Introduce kick function Alexander Graf
2013-06-30 1:27 ` [Qemu-devel] [PATCH 10/15] PPC: dbdma: Move static bh variable to device struct Alexander Graf
2013-06-30 1:27 ` [Qemu-devel] [PATCH 11/15] PPC: dbdma: macio: Add DMA callback Alexander Graf
2013-06-30 1:27 ` [Qemu-devel] [PATCH 12/15] PPC: dbdma: Move processing to io Alexander Graf
2013-06-30 6:48 ` Andreas Färber [this message]
2013-06-30 23:35 ` Alexander Graf
2013-06-30 1:27 ` [Qemu-devel] [PATCH 13/15] PPC: dbdma: Wait for DMA until we have data Alexander Graf
2013-06-30 1:27 ` [Qemu-devel] [PATCH 14/15] PPC: dbdma: Support unaligned DMA access Alexander Graf
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=51CFD4AA.3060302@suse.de \
--to=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=kwolf@redhat.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=programmingkidx@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.