From: Liam Girdwood <lrg@slimlogic.co.uk>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: alsa-devel@alsa-project.org, broonie@opensource.wolfsonmicro.com,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [alsa-devel] [PATCH 1/6] ASoC/mpc5200: Track DMA position by period number instead of bytes
Date: Sat, 07 Nov 2009 10:35:53 +0000 [thread overview]
Message-ID: <1257590153.3960.3.camel@odin> (raw)
In-Reply-To: <20091107083345.18908.96473.stgit@angua>
On Sat, 2009-11-07 at 01:33 -0700, Grant Likely wrote:
> All DMA blocks are lined up to period boundaries, but the DMA
> handling code tracks bytes instead. This patch reworks the code
> to track the period index into the DMA buffer instead of the
> physical address pointer. Doing so makes the code simpler and
> easier to understand.
>
> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Very minor coding style thing below otherwise all get my Ack.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
> ---
>
> sound/soc/fsl/mpc5200_dma.c | 28 +++++++++-------------------
> sound/soc/fsl/mpc5200_dma.h | 8 ++------
> 2 files changed, 11 insertions(+), 25 deletions(-)
>
> diff --git a/sound/soc/fsl/mpc5200_dma.c b/sound/soc/fsl/mpc5200_dma.c
> index 6096d22..986d3c8 100644
> --- a/sound/soc/fsl/mpc5200_dma.c
> +++ b/sound/soc/fsl/mpc5200_dma.c
> @@ -58,13 +58,11 @@ static void psc_dma_bcom_enqueue_next_buffer(struct psc_dma_stream *s)
> /* Prepare and enqueue the next buffer descriptor */
> bd = bcom_prepare_next_buffer(s->bcom_task);
> bd->status = s->period_bytes;
> - bd->data[0] = s->period_next_pt;
> + bd->data[0] = s->runtime->dma_addr + (s->period_next * s->period_bytes);
> bcom_submit_next_buffer(s->bcom_task, NULL);
>
> /* Update for next period */
> - s->period_next_pt += s->period_bytes;
> - if (s->period_next_pt >= s->period_end)
> - s->period_next_pt = s->period_start;
> + s->period_next = (s->period_next + 1) % s->runtime->periods;
> }
>
> static void psc_dma_bcom_enqueue_tx(struct psc_dma_stream *s)
> @@ -79,7 +77,7 @@ static void psc_dma_bcom_enqueue_tx(struct psc_dma_stream *s)
> if (bcom_queue_full(s->bcom_task))
> return;
>
> - s->appl_ptr += s->period_size;
> + s->appl_ptr += s->runtime->period_size;
>
> psc_dma_bcom_enqueue_next_buffer(s);
> }
> @@ -91,7 +89,7 @@ static void psc_dma_bcom_enqueue_tx(struct psc_dma_stream *s)
> if (bcom_queue_full(s->bcom_task))
> return;
>
> - s->appl_ptr += s->period_size;
> + s->appl_ptr += s->runtime->period_size;
>
> psc_dma_bcom_enqueue_next_buffer(s);
> }
> @@ -108,9 +106,7 @@ static irqreturn_t psc_dma_bcom_irq_tx(int irq, void *_psc_dma_stream)
> while (bcom_buffer_done(s->bcom_task)) {
> bcom_retrieve_buffer(s->bcom_task, NULL, NULL);
>
> - s->period_current_pt += s->period_bytes;
> - if (s->period_current_pt >= s->period_end)
> - s->period_current_pt = s->period_start;
> + s->period_current = (s->period_current+1) % s->runtime->periods;
I prefer a space around operators.
s->period_current = (s->period_current + 1) % s->runtime->periods;
Liam
next prev parent reply other threads:[~2009-11-07 10:36 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-07 8:33 [PATCH 0/6] Fixups to MPC5200 ASoC drivers Grant Likely
2009-11-07 8:33 ` [PATCH 1/6] ASoC/mpc5200: Track DMA position by period number instead of bytes Grant Likely
2009-11-07 10:35 ` Liam Girdwood [this message]
2009-11-07 16:50 ` [alsa-devel] " Grant Likely
2009-11-07 8:34 ` [PATCH 2/6] ASoC/mpc5200: get rid of the appl_ptr tracking nonsense Grant Likely
2009-11-07 12:51 ` Jon Smirl
2009-11-07 13:04 ` Jon Smirl
2009-11-07 18:53 ` Grant Likely
2009-11-07 18:51 ` Grant Likely
2009-11-07 20:12 ` [alsa-devel] " Mark Brown
2009-11-11 16:38 ` Jon Smirl
2009-11-11 18:37 ` Mark Brown
2009-11-11 19:24 ` Grant Likely
2009-11-11 20:03 ` Mark Brown
2009-11-11 21:34 ` Jon Smirl
2009-11-11 21:57 ` Grant Likely
2009-11-11 23:13 ` Jon Smirl
2009-11-12 12:10 ` Mark Brown
2009-11-11 21:26 ` Jon Smirl
2009-11-07 8:34 ` [PATCH 3/6] ASoC/mpc5200: Improve printk debug output for trigger Grant Likely
2009-11-07 8:34 ` [PATCH 4/6] ASoC/mpc5200: add to_psc_dma_stream() helper Grant Likely
2009-11-07 12:33 ` [alsa-devel] " Mark Brown
2009-11-07 8:34 ` [PATCH 5/6] ASoC/mpc5200: fix enable/disable of AC97 slots Grant Likely
2009-11-07 8:34 ` [PATCH 6/6] ASoC/mpc5200: Add fudge factor to value reported by .pointer() Grant Likely
2009-11-07 18:11 ` [alsa-devel] " Mark Brown
2009-11-07 18:19 ` Grant Likely
2009-11-07 19:33 ` Mark Brown
2009-11-07 19:46 ` Grant Likely
2009-11-07 12:57 ` [alsa-devel] [PATCH 0/6] Fixups to MPC5200 ASoC drivers Mark Brown
2009-11-07 16:52 ` Grant Likely
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=1257590153.3960.3.camel@odin \
--to=lrg@slimlogic.co.uk \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=grant.likely@secretlab.ca \
--cc=linuxppc-dev@lists.ozlabs.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).