===== sound/oss/i810_audio.c 1.76 vs edited ===== --- 1.76/sound/oss/i810_audio.c 2005-01-08 16:44:18 +11:00 +++ edited/sound/oss/i810_audio.c 2005-01-18 10:20:42 +11:00 @@ -1196,18 +1196,21 @@ if (count < fragsize) return; + /* MASKP2(swptr, fragsize) - 1 is the tail of our transfer */ + x = MODULOP2(MASKP2(dmabuf->swptr, fragsize) - 1, dmabuf->dmasize); + x >>= dmabuf->fragshift; + if (!dmabuf->enable && dmabuf->ready) { if (!(dmabuf->trigger & trigger)) return; + I810_IOWRITEB(x, state->card, port + OFF_LVI); start(state); while (!(I810_IOREADB(state->card, port + OFF_CR) & ((1<<4) | (1<<2)))) ; + return; } - /* MASKP2(swptr, fragsize) - 1 is the tail of our transfer */ - x = MODULOP2(MASKP2(dmabuf->swptr, fragsize) - 1, dmabuf->dmasize); - x >>= dmabuf->fragshift; I810_IOWRITEB(x, state->card, port + OFF_LVI); }