From: "John W. Linville" Signed-off-by: Andrew Morton --- 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)) _