All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shine Liu <shinel@foxmail.com>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: ben@simtec.co.uk, alsa-devel@alsa-project.org
Subject: Re: [PATCH] ASoC: s3c24xx platform: Fix s3c2410_dma_started called at wrong time
Date: Thu, 20 Aug 2009 19:59:48 +0800	[thread overview]
Message-ID: <1250769588.3684.28.camel@sl> (raw)
In-Reply-To: <20090820101549.GA23141@rakim.wolfsonmicro.main>

On Thu, 2009-08-20 at 11:15 +0100, Mark Brown wrote:
> On Thu, Aug 20, 2009 at 05:42:11PM +0800, Shine Liu wrote:
> 
> > In the current framework, s3c24xx_pcm_trigger() is always called before
> > s3c24xx_pcm_trigger(). So the s3c2410_dma_started() should be called in
> > s3c24xx_pcm_trigger() after s3c24xx_snd_txctrl(1) or
> > s3c24xx_snd_rxctrl(1) is called in this function.
> 
> I suspect some of the function names in your description here are
> incorrect :) Another option is to provide a callback in the private data
> passed to the DMA driver which the DMA driver can call at the
> appropriate point during setup.

Sorry for the mistake. Should be s3c24xx_pcm_trigger() is always called
before s3c24xx_i2s_trigger() in current framework :
s3c24xx_pcm_trigger() is called via platform->pcm_ops->trigger and
s3c24xx_i2s_trigger() is called via cpu_dai->ops->trigger.

The problem is that DMA driver doesn't know when the DMA transfer has
been really started. The DMA setup is done in s3c24xx_pcm_trigger(), in
which all DMA related registers are set. But it doesn't mean the DMA
transfer is started at this point because the DMA REQ signal has not
arrived which is generated by the IIS. DMA driver has no way to know
when the DMA REQ signal arrived. So the s3c24xx DMA driver provids a
s3c2410_dma_started() method to let the user call when he knows the DMA
transfer has been started.

> 
> Someone will presumably also need to take care of the same things in the
> other S3C DAI drivers too, though it should be possible to arrange
> things so that can be done seperately.

  reply	other threads:[~2009-08-20 12:00 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-20  9:42 [PATCH] ASoC: s3c24xx platform: Fix s3c2410_dma_started called at wrong time Shine Liu
2009-08-20 10:15 ` Mark Brown
2009-08-20 11:59   ` Shine Liu [this message]
2009-08-20 12:18     ` Mark Brown
2009-08-20 13:38       ` Shine Liu
2009-08-20 14:52         ` Mark Brown
2009-08-20 15:45           ` Shine Liu
2009-08-20 18:47             ` Mark Brown
2009-08-21 10:00               ` Shine Liu
2009-08-23 10:28                 ` Mark Brown
2009-08-23 11:37                   ` Shine Liu
     [not found]                     ` <20090824101733.GA3591@rakim.wolfsonmicro.main>
2009-08-24 11:54                       ` Shine Liu
2009-08-24 12:05                         ` Mark Brown
2009-08-24 13:31                           ` Shine Liu
2009-08-25  3:04                   ` [PATCH] ASoC: S3C platform: Fix s3c2410_dma_started() called at improper time Shine Liu
2009-08-25 10:33                     ` Mark Brown
2009-08-25 12:05                       ` Shine Liu
2009-08-25 12:12                         ` Mark Brown

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=1250769588.3684.28.camel@sl \
    --to=shinel@foxmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=ben@simtec.co.uk \
    --cc=broonie@opensource.wolfsonmicro.com \
    /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.