From c80a68d036b8f9c81d9236c13799ce863e1dbe0c Mon Sep 17 00:00:00 2001 From: Charles Keepax Date: Thu, 18 Apr 2013 10:59:23 +0100 Subject: [PATCH] --- yaml --- r: 372019 b: refs/heads/master c: 4c28e32d6c4da1d2bc92d3062690e770c18493e6 h: refs/heads/master i: 372017: 1b099a15737b982314cb349c886e6b77dd205a50 372015: 521e33bd0b4e6573a865f2d870e59378084acc92 v: v3 --- [refs] | 2 +- trunk/sound/core/compress_offload.c | 23 +++++------------------ 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/[refs] b/[refs] index c3d7a7dae391..8e30540ef6b0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8dd2b66d1a961231685a3bfe5937c85d846fbf5d +refs/heads/master: 4c28e32d6c4da1d2bc92d3062690e770c18493e6 diff --git a/trunk/sound/core/compress_offload.c b/trunk/sound/core/compress_offload.c index c84abc886e90..27bd81ad2841 100644 --- a/trunk/sound/core/compress_offload.c +++ b/trunk/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 */ - - 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); + return avail->avail; } static inline size_t snd_compr_get_avail(struct snd_compr_stream *stream)