
From: "John W. Linville" <linville@tuxdriver.com>



Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/sound/oss/i810_audio.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletion(-)

diff -puN sound/oss/i810_audio.c~i810_audio-offset-lvi-from-civ-to-avoid-stalled-start-fix sound/oss/i810_audio.c
--- 25/sound/oss/i810_audio.c~i810_audio-offset-lvi-from-civ-to-avoid-stalled-start-fix	2005-01-28 18:22:25.755132272 -0800
+++ 25-akpm/sound/oss/i810_audio.c	2005-01-28 18:22:25.762131208 -0800
@@ -1202,7 +1202,10 @@ static void __i810_update_lvi(struct i81
 	 * the next sg segment, it won't even get a start.  So, instead, when
 	 * we are stopped, we set both the LVI value and also we increment
 	 * the CIV value to the next sg segment to be played so that when
-	 * we call start, things will operate properly
+	 * we call start, things will operate properly.  Since the CIV can't
+	 * be written to directly for this purpose, we set the LVI to CIV + 1
+	 * temporarily.  Once the engine has started we set the LVI to its
+	 * final value.
 	 */
 	if (!dmabuf->enable && dmabuf->ready) {
 		if (!(dmabuf->trigger & trigger))
_
