public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Ford <david+cert@blue-labs.org>
To: "dean ." <ioooioiiooi@hotmail.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: ALSA + mmap or OSS emulation + mmap producing stutering sound
Date: Sat, 15 Mar 2003 19:10:33 -0500	[thread overview]
Message-ID: <3E73C0F9.3000203@blue-labs.org> (raw)
In-Reply-To: <F18MhvqgStMVhEUsebm00002883@hotmail.com>

[-- Attachment #1: Type: text/plain, Size: 502 bytes --]

This is due to a broken ALSA update patch for the cs46xx code.  Apply 
the included patch which unbreaks the update.

David

dean . wrote:

> Kernel versions 2.5.61-64 (Havnt tried 60) produce stuttering sound 
> when using alsa and mmap (xmms alsa output plugin) or oss emu and mmap 
> (quake3?) produce stuttering sound happening after around the first 
> half second of playing. This is with the kernels alsa cs46xx module 
> and a Turtle beach Santa Cruz soundcard. Works fine with 2.5.59 though.


[-- Attachment #2: cs46.patch --]
[-- Type: text/plain, Size: 1965 bytes --]

diff -Nru a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
--- a/sound/pci/cs46xx/cs46xx_lib.c	Mon Feb 17 14:57:26 2003
+++ b/sound/pci/cs46xx/cs46xx_lib.c	Mon Feb 17 14:57:26 2003
@@ -677,6 +677,7 @@
 {
 	/* cs46xx_t *chip = snd_pcm_substream_chip(substream); */
 	snd_pcm_runtime_t *runtime = substream->runtime;
+	snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr;
 	snd_pcm_sframes_t diff;
 	cs46xx_pcm_t * cpcm;
 	int buffer_size;
@@ -685,14 +686,14 @@
 
 	buffer_size = runtime->period_size * CS46XX_FRAGS << cpcm->shift;
 
-	diff = runtime->control->appl_ptr - cpcm->appl_ptr;
+	diff = appl_ptr - cpcm->appl_ptr;
 	if (diff) {
 		if (diff < -(snd_pcm_sframes_t) (runtime->boundary / 2))
 			diff += runtime->boundary;
-		cpcm->sw_ready += diff << cpcm->shift;
+		frames += diff;
 	}
 	cpcm->sw_ready += frames << cpcm->shift;
-	cpcm->appl_ptr = runtime->control->appl_ptr + frames;
+	cpcm->appl_ptr = appl_ptr + frames;
 	while (cpcm->hw_ready < buffer_size && 
 	       cpcm->sw_ready > 0) {
 		size_t hw_to_end = buffer_size - cpcm->hw_data;
@@ -724,15 +725,16 @@
 {
 	cs46xx_t *chip = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_pcm_sframes_t diff = runtime->control->appl_ptr - chip->capt.appl_ptr;
+	snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr;
+	snd_pcm_sframes_t diff = appl_ptr - chip->capt.appl_ptr;
 	int buffer_size = runtime->period_size * CS46XX_FRAGS << chip->capt.shift;
 	if (diff) {
 		if (diff < -(snd_pcm_sframes_t) (runtime->boundary / 2))
 			diff += runtime->boundary;
-		chip->capt.sw_ready -= diff << chip->capt.shift;
+		frames += diff;
 	}
 	chip->capt.sw_ready -= frames << chip->capt.shift;
-	chip->capt.appl_ptr = runtime->control->appl_ptr + frames;
+	chip->capt.appl_ptr = appl_ptr + frames;
 	while (chip->capt.hw_ready > 0 && 
 	       chip->capt.sw_ready < (int)chip->capt.sw_bufsize) {
 		size_t hw_to_end = buffer_size - chip->capt.hw_data;

  reply	other threads:[~2003-03-15 23:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-15  5:52 ALSA + mmap or OSS emulation + mmap producing stutering sound dean .
2003-03-16  0:10 ` David Ford [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-03-17 12:32 Luuk van der Duim
2003-03-18 14:34 dean .

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=3E73C0F9.3000203@blue-labs.org \
    --to=david+cert@blue-labs.org \
    --cc=ioooioiiooi@hotmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /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