From: Vinod Koul <vinod.koul@intel.com>
To: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Cc: alsa-devel@alsa-project.org, broonie@opensource.wolfsonmicro.com,
tiwai@suse.de, patches@opensource.wolfsonmicro.com,
lgirdwood@gmail.com
Subject: Re: [PATCH 1/3] ALSA: compress_core: Update calc_avail to use cumulative values
Date: Tue, 9 Apr 2013 16:32:30 +0530 [thread overview]
Message-ID: <20130409110230.GE31193@intel.com> (raw)
In-Reply-To: <1364991209-24653-1-git-send-email-ckeepax@opensource.wolfsonmicro.com>
On Wed, Apr 03, 2013 at 01:13:27PM +0100, Charles Keepax wrote:
> The app_pointer is managed locally by the compress core for memory
> mapped DSPs but for DSPs that are not memory mapped this would have to
> be manually updated from within the DSP driver itself, which is hardly
> very idiomatic.
app pointer means what has been written into DSP buffer, no matter if its memory
mapped or not. This is updated after .copy returns so if you have been asked to
copy 100bytes, and return of .copy, app pointer is incremented by 100, so why is
that not true for you?
> This patch switches to using the cumulative values to calculate the
> available buffer space because these are already gracefully passed out
> of the DSP driver to the compress core and otherwise should be
> functionally equivalent.
>
> Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
> ---
> sound/core/compress_offload.c | 23 +++++------------------
> 1 files changed, 5 insertions(+), 18 deletions(-)
>
> diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c
> index c84abc8..27bd81a 100644
> --- a/sound/core/compress_offload.c
> +++ b/sound/core/compress_offload.c
> @@ -160,8 +160,6 @@ static int snd_compr_update_tstamp(struct snd_compr_stream *stream,
> static size_t snd_compr_calc_avail(struct snd_compr_stream *stream,
> struct snd_compr_avail *avail)
> {
> - long avail_calc; /*this needs to be signed variable */
> -
> memset(avail, 0, sizeof(*avail));
> snd_compr_update_tstamp(stream, &avail->tstamp);
> /* Still need to return avail even if tstamp can't be filled in */
> @@ -184,22 +182,11 @@ static size_t snd_compr_calc_avail(struct snd_compr_stream *stream,
> return stream->runtime->buffer_size;
> }
>
> - /* FIXME: this routine isn't consistent, in one test we use
> - * cumulative values and in the other byte offsets. Do we
> - * really need the byte offsets if the cumulative values have
> - * been updated? In the PCM interface app_ptr and hw_ptr are
> - * already cumulative */
What is this patch based off< certainly not asoc/sound-next as I dont remember
this comment. IIRC comment was to test this for capture case!
> -
> - avail_calc = stream->runtime->buffer_size -
> - (stream->runtime->app_pointer - stream->runtime->hw_pointer);
> - pr_debug("calc avail as %ld, app_ptr %lld, hw+ptr %lld\n", avail_calc,
> - stream->runtime->app_pointer,
> - stream->runtime->hw_pointer);
> - if (avail_calc >= stream->runtime->buffer_size)
> - avail_calc -= stream->runtime->buffer_size;
> - pr_debug("ret avail as %ld\n", avail_calc);
> - avail->avail = avail_calc;
> - return avail_calc;
> + avail->avail = stream->runtime->buffer_size -
> + (stream->runtime->total_bytes_available -
> + stream->runtime->total_bytes_transferred);
> + pr_debug("ret avail as %lld\n", avail->avail);
Neverthless, I agree that is simpler calculation...
> + return avail->avail;
> }
>
> static inline size_t snd_compr_get_avail(struct snd_compr_stream *stream)
> --
> 1.7.2.5
>
next prev parent reply other threads:[~2013-04-09 11:31 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-03 12:13 [PATCH 1/3] ALSA: compress_core: Update calc_avail to use cumulative values Charles Keepax
2013-04-03 12:13 ` [PATCH 2/3] ALSA: compress_core: Split copy into seperate read and write callbacks Charles Keepax
2013-04-04 18:01 ` Pierre-Louis Bossart
2013-04-05 8:23 ` Charles Keepax
2013-04-09 11:15 ` Vinod Koul
2013-04-09 11:47 ` Mark Brown
2013-04-09 14:30 ` Takashi Iwai
2013-04-03 12:13 ` [PATCH 3/3] ASoC: soc-compress: " Charles Keepax
2013-04-09 11:15 ` Vinod Koul
2013-04-04 18:22 ` [PATCH 1/3] ALSA: compress_core: Update calc_avail to use cumulative values Pierre-Louis Bossart
2013-04-05 8:36 ` Charles Keepax
2013-04-05 14:51 ` Pierre-Louis Bossart
2013-04-05 15:18 ` Charles Keepax
2013-04-09 10:55 ` Vinod Koul
2013-04-10 3:59 ` Pierre-Louis Bossart
2013-04-10 10:01 ` Charles Keepax
2013-04-09 11:02 ` Vinod Koul [this message]
2013-04-10 9:57 ` Charles Keepax
2013-04-10 10:07 ` Charles Keepax
2013-04-10 13:03 ` 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=20130409110230.GE31193@intel.com \
--to=vinod.koul@intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=ckeepax@opensource.wolfsonmicro.com \
--cc=lgirdwood@gmail.com \
--cc=patches@opensource.wolfsonmicro.com \
--cc=tiwai@suse.de \
/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.