From: Grant Likely <grant.likely@secretlab.ca>
To: John Bonesio <bones@secretlab.ca>
Cc: Grant Likely <grant.likely@secretlab.ca>,
alsa-devel@alsa-project.org,
Mark Brown <broonie@opensource.wolfsonmicro.com>,
Eric Millbrandt <emillbrandt@dekaresearch.com>
Subject: Re: [PATCH] ASoC: MPC5200: Support for buffer wrap around
Date: Fri, 31 Jul 2009 19:57:34 -0600 [thread overview]
Message-ID: <fa686aa40907311857j6c1f14eftcee349f693eaa3ed@mail.gmail.com> (raw)
In-Reply-To: <20090731230311.17686.46431.stgit@riker>
On Friday, July 31, 2009, John Bonesio <bones@secretlab.ca> wrote:
> We've encountered strange behavior in the alsamixer settings using the wm9712
> codec. If we unmute the headphone output and then unmute the PCM output, the
> headphone output gets reset to mute in the hardware register. At this point
> the hardware register does not match the value in the register cache.
>
> I've spent some time debugging this, and the headphone setting is set outside
> of any code path that would call the ac97_write() routine. As best as I can
> tell, there is something strange going on in hardware.
>
> I've provided this patch that works around the problem.
>
> Have any of you seen this before? Is this patch the right approach?
>
> - John
>
> The code in psc_dma_bcom_enqueue_tx() didn't account for the fact that
> s->runtime->control->appl_ptr can wrap around to the beginning of the
> buffer. This change fixes this problem.
>
> Signed-off-by: John Bonesio <bones@secretlab.ca>
Hey John,
It would appear that you've attached the wrong patch.
g.
> ---
>
> sound/soc/fsl/mpc5200_dma.c | 17 +++++++++++++++++
> 1 files changed, 17 insertions(+), 0 deletions(-)
>
> diff --git a/sound/soc/fsl/mpc5200_dma.c b/sound/soc/fsl/mpc5200_dma.c
> index cfe0ea4..2551c58 100644
> --- a/sound/soc/fsl/mpc5200_dma.c
> +++ b/sound/soc/fsl/mpc5200_dma.c
> @@ -70,6 +70,23 @@ static void psc_dma_bcom_enqueue_next_buffer(struct psc_dma_stream *s)
>
> static void psc_dma_bcom_enqueue_tx(struct psc_dma_stream *s)
> {
> + if (s->appl_ptr > s->runtime->control->appl_ptr) {
> + /*
> + * In this case s->runtime->control->appl_ptr has wrapped around.
> + * Play the data to the end of the boundary, then wrap our own
> + * appl_ptr back around.
> + */
> + while (s->appl_ptr < s->runtime->boundary) {
> + if (bcom_queue_full(s->bcom_task))
> + return;
> +
> + s->appl_ptr += s->period_size;
> +
> + psc_dma_bcom_enqueue_next_buffer(s);
> + }
> + s->appl_ptr -= s->runtime->boundary;
> + }
> +
> while (s->appl_ptr < s->runtime->control->appl_ptr) {
>
> if (bcom_queue_full(s->bcom_task))
>
>
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
next prev parent reply other threads:[~2009-08-01 1:57 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-31 23:08 [PATCH] ASoC: MPC5200: Support for buffer wrap around John Bonesio
2009-08-01 1:57 ` Grant Likely [this message]
2009-08-01 9:57 ` Mark Brown
2009-08-01 13:47 ` Jon Smirl
2009-08-01 15:04 ` John Bonesio
2009-08-01 16:30 ` Jon Smirl
2009-08-02 11:49 ` Mark Brown
2009-08-05 16:30 ` [PATCH] ASoC: WM9712 Codec: Workaround an unmute problem (Was: Re: [PATCH] ASoC: MPC5200: Support for buffer wrap around) John Bonesio
2009-08-05 17:03 ` MPC5200/WM9712 mute problem Mark Brown
2009-08-06 17:28 ` John Bonesio
2009-08-07 9:56 ` Mark Brown
2009-08-07 14:48 ` John Bonesio
2009-08-07 15:16 ` Jon Smirl
2009-08-05 17:16 ` [PATCH] ASoC: WM9712 Codec: Workaround an unmute problem (Was: Re: [PATCH] ASoC: MPC5200: Support for buffer wrap around) Jon Smirl
2009-08-05 17:27 ` Jon Smirl
-- strict thread matches above, loose matches on Subject: below --
2009-07-29 15:38 [PATCH] ASoC: MPC5200: Support for buffer wrap around John Bonesio
2009-08-05 16:44 ` John Bonesio
2009-08-05 17:05 ` Mark Brown
2009-08-05 18:05 ` Grant Likely
2009-08-05 18:34 ` Jon Smirl
2009-08-05 21:11 ` 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=fa686aa40907311857j6c1f14eftcee349f693eaa3ed@mail.gmail.com \
--to=grant.likely@secretlab.ca \
--cc=alsa-devel@alsa-project.org \
--cc=bones@secretlab.ca \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=emillbrandt@dekaresearch.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox