The committer, Takashi Iwai, decided to help us. Can you use this patch (and help me test it) :-)
Nio
-----
OK, I see why this bogus report reappears again. The message tag was
reverted back after some commit for correctness.
Now I rephrased the text again so that it won't hit some stupid daemon
any longer. It'll be included in 4.6 kernel, and then backported to
stable kernels later.
But, note that this doesn't fix the issue. For a proper fix, a patch
like below would be needed. Let me know if this works for you. (But
I have no idea about Ubuntu, so I cannot tell you how to apply the
patch, ask other Ubuntu people about it
au88x0 hardware seems returning the current pointer at the buffer
boundary instead of going back to zero. This results in spewing
warnings from PCM core.
This patch corrects the return value from the pointer callback within
the proper value range, just returning zero if the position is equal
or above the buffer size.
Raymond,
The committer, Takashi Iwai, decided to help us. Can you use this patch (and help me test it) :-)
Nio
-----
OK, I see why this bogus report reappears again. The message tag was
reverted back after some commit for correctness.
Now I rephrased the text again so that it won't hit some stupid daemon
any longer. It'll be included in 4.6 kernel, and then backported to
stable kernels later.
But, note that this doesn't fix the issue. For a proper fix, a patch
like below would be needed. Let me know if this works for you. (But
I have no idea about Ubuntu, so I cannot tell you how to apply the
patch, ask other Ubuntu people about it
Takashi
-- 8< --
From: Takashi Iwai at SUSE
Subject: [PATCH] ALSA: au88x0: Fix overlapped PCM pointer
au88x0 hardware seems returning the current pointer at the buffer
boundary instead of going back to zero. This results in spewing
warnings from PCM core.
This patch corrects the return value from the pointer callback within
the proper value range, just returning zero if the position is equal
or above the buffer size.
Signed-off-by: Takashi Iwai at SUSE pci/au88x0/ au88x0_ pcm.c | 5 ++++-
---
sound/
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/sound/ pci/au88x0/ au88x0_ pcm.c b/sound/ pci/au88x0/ au88x0_ pcm.c .df5741a78fd2 100644 pci/au88x0/ au88x0_ pcm.c pci/au88x0/ au88x0_ pcm.c pcm_pointer( struct snd_pcm_substream *substr KERN_INFO "vortex: pointer = 0x%x\n", current_ptr); unlock( &chip-> lock); to_frames( substream- >runtime, current_ptr)); frames( substream- >runtime, current_ptr); >runtime- >buffer_ size)
index a6d6d8d0867a.
--- a/sound/
+++ b/sound/
@@ -432,7 +432,10 @@ static snd_pcm_uframes_t snd_vortex_
#endif
//printk(
spin_
- return (bytes_
+ current_ptr = bytes_to_
+ if (current_ptr >= substream-
+ current_ptr = 0;
+ return current_ptr;
}
/* operators */
--
2.7.2