summaryrefslogtreecommitdiffstats
path: root/sound/core
diff options
context:
space:
mode:
authorRoger Mach <bigmach@us.ibm.com>2005-05-26 17:58:01 +0200
committerJaroslav Kysela <perex@suse.cz>2005-05-29 10:14:59 +0200
commitc3a9cfac750d78241b5dde7d004522f687703b90 (patch)
tree9d7245efcd1703a0f0ddf2b15b87c1aabac36e29 /sound/core
parent[ALSA] Fix ALC880 capture problems (diff)
downloadlinux-c3a9cfac750d78241b5dde7d004522f687703b90.tar.xz
linux-c3a9cfac750d78241b5dde7d004522f687703b90.zip
[ALSA] pcm_oss - fix SNDCTL_DSP_GETOPTR not working correctly
ALSA<-OSS emulation This patch changes snd_pcm_oss_bytes() by adding a local variable for the frames -> bytes conversion, which means that the frame count is no longer corrupted by this conversion. Signed-off-by: Roger Mach <bigmach@us.ibm.com> Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Diffstat (limited to 'sound/core')
-rw-r--r--sound/core/oss/pcm_oss.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
index 6c8fdcaf9f4f..6f90dbb76804 100644
--- a/sound/core/oss/pcm_oss.c
+++ b/sound/core/oss/pcm_oss.c
@@ -124,11 +124,12 @@ int snd_pcm_plugin_append(snd_pcm_plugin_t *plugin)
static long snd_pcm_oss_bytes(snd_pcm_substream_t *substream, long frames)
{
+ long bytes = 0;
snd_pcm_runtime_t *runtime = substream->runtime;
snd_pcm_uframes_t buffer_size = snd_pcm_lib_buffer_bytes(substream);
- frames = frames_to_bytes(runtime, frames);
+ bytes = frames_to_bytes(runtime, frames);
if (buffer_size == runtime->oss.buffer_bytes)
- return frames;
+ return bytes;
return (runtime->oss.buffer_bytes * frames) / buffer_size;
}