All of lore.kernel.org
 help / color / mirror / Atom feed
From: Karl Beldan <karl.beldan@gmail.com>
To: Mark Brown <broonie@sirena.org.uk>
Cc: Russell King <linux@arm.linux.org.uk>,
	alsa-devel@alsa-project.org, Eric Miao <eric.miao@marvell.com>,
	linux-arm-kernel <linux-arm-kernel@lists.arm.linux.org.uk>,
	Matthieu Dumont <matthieu.dumont@mobile-devices.fr>
Subject: Re: [PATCH 3/4] pxa2xx-i2s: Cleaner use of the FIFOs
Date: Sat, 9 May 2009 00:02:04 +0200	[thread overview]
Message-ID: <ea2442770905081502s709c4e6tff52473de4293579@mail.gmail.com> (raw)
In-Reply-To: <ea2442770905081307n7ad5419hf206febab83c7931@mail.gmail.com>

On Fri, May 8, 2009 at 10:07 PM, Karl Beldan <karl.beldan@gmail.com> wrote:
> On Fri, May 8, 2009 at 12:57 PM, Mark Brown <broonie@sirena.org.uk> wrote:
>> On Fri, May 08, 2009 at 01:53:55AM +0200, Karl Beldan wrote:
>>
>>> The FIFO logic and the registers are reset at stream startup with
>>> SACR0_RST => the sibling function might suffer and the FIFOs might
>>> unpleasantly fill up whence the calls to pxa_i2s_wait all over the place.
>>> This gets rid of it.
>>
>> The change to stream startup makes sense but...
>>
>>> @@ -256,7 +242,6 @@ static void pxa2xx_i2s_shutdown(struct snd_pcm_substream *substream,
>>>
>>>       if ((SACR1 & (SACR1_DREC | SACR1_DRPL)) == (SACR1_DREC | SACR1_DRPL)) {
>>>               SACR0 &= ~SACR0_ENB;
>>> -             pxa_i2s_wait();
>>>               clk_disable(clk_i2s);
>>>       }
>>>  }
>>> @@ -275,7 +260,6 @@ static int pxa2xx_i2s_suspend(struct snd_soc_dai *dai)
>>>
>>>       /* deactivate link */
>>>       SACR0 &= ~SACR0_ENB;
>>> -     pxa_i2s_wait();
>>>       return 0;
>>>  }
>>
>> ...there's also changes to the suspend and resume paths here which seem
>> like they'd be as well not to do simply for robustness.  Is there any
>> great reason for doing this or are you just doing it for neatness, the
>> changelog isn't entirely clear?
>>
>
> The logic was crippled by this reset and the activation of both
> functions each time .. at the time
> I may have over overlooked that the fifo still might still need
> flushing when cleaning that mess up.
> One such situation I can think of right now might be when calling
> snd_pcm_release_substream: it
> does 'hw_free' before 'close' so pcm  won't flush cpu_dai fifo and we
> end up with 'garbage' in the fifo and
> one spurious irq.
> Anyways being unsure of the sequence of events it might well be uncary
> to get rid of these, will get back to you.

If I recall correctly flushing the fifo works only when the
corresponding function is enabled, making the calls in
shutdown/suspend useless, whence the overlook, will check.

-- 
Karl

      reply	other threads:[~2009-05-08 22:02 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-07 23:53 [PATCH 3/4] pxa2xx-i2s: Cleaner use of the FIFOs Karl Beldan
2009-05-08 10:57 ` Mark Brown
2009-05-08 20:07   ` Karl Beldan
2009-05-08 22:02     ` Karl Beldan [this message]

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=ea2442770905081502s709c4e6tff52473de4293579@mail.gmail.com \
    --to=karl.beldan@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@sirena.org.uk \
    --cc=eric.miao@marvell.com \
    --cc=linux-arm-kernel@lists.arm.linux.org.uk \
    --cc=linux@arm.linux.org.uk \
    --cc=matthieu.dumont@mobile-devices.fr \
    /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.