diff options
author | cg <cg@FreeBSD.org> | 2000-02-14 23:37:02 +0000 |
---|---|---|
committer | cg <cg@FreeBSD.org> | 2000-02-14 23:37:02 +0000 |
commit | a69329aaa12ff252bd5ab07145d3ed697f39f2c4 (patch) | |
tree | 9fda20ee63d9a65a2035ba3039f2d6856b367518 /sys/dev | |
parent | 0aec74e70b98ca804ef8d09226d3bbafbf8b9086 (diff) | |
download | FreeBSD-src-a69329aaa12ff252bd5ab07145d3ed697f39f2c4.zip FreeBSD-src-a69329aaa12ff252bd5ab07145d3ed697f39f2c4.tar.gz |
fix ess end-of-buffer repeating
Submitted by: nhibma
Approved by: jkh
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/sound/isa/sb.c | 8 | ||||
-rw-r--r-- | sys/dev/sound/isa/sb16.c | 8 | ||||
-rw-r--r-- | sys/dev/sound/isa/sb8.c | 8 |
3 files changed, 6 insertions, 18 deletions
diff --git a/sys/dev/sound/isa/sb.c b/sys/dev/sound/isa/sb.c index 93e1815..2161982 100644 --- a/sys/dev/sound/isa/sb.c +++ b/sys/dev/sound/isa/sb.c @@ -583,14 +583,10 @@ ess_intr(void *arg) * We are transferring data in DSP normal mode, * so clear the dl to indicate the DMA is stopped. */ - if (sb->pch.buffer->dl > 0) { - sb->pch.buffer->dl = -1; + if (sb->pch.buffer->dl > 0) chn_intr(sb->pch.channel); - } - if (sb->rch.buffer->dl > 0) { - sb->rch.buffer->dl = -1; + if (sb->rch.buffer->dl > 0) chn_intr(sb->rch.channel); - } } static int diff --git a/sys/dev/sound/isa/sb16.c b/sys/dev/sound/isa/sb16.c index 93e1815..2161982 100644 --- a/sys/dev/sound/isa/sb16.c +++ b/sys/dev/sound/isa/sb16.c @@ -583,14 +583,10 @@ ess_intr(void *arg) * We are transferring data in DSP normal mode, * so clear the dl to indicate the DMA is stopped. */ - if (sb->pch.buffer->dl > 0) { - sb->pch.buffer->dl = -1; + if (sb->pch.buffer->dl > 0) chn_intr(sb->pch.channel); - } - if (sb->rch.buffer->dl > 0) { - sb->rch.buffer->dl = -1; + if (sb->rch.buffer->dl > 0) chn_intr(sb->rch.channel); - } } static int diff --git a/sys/dev/sound/isa/sb8.c b/sys/dev/sound/isa/sb8.c index 93e1815..2161982 100644 --- a/sys/dev/sound/isa/sb8.c +++ b/sys/dev/sound/isa/sb8.c @@ -583,14 +583,10 @@ ess_intr(void *arg) * We are transferring data in DSP normal mode, * so clear the dl to indicate the DMA is stopped. */ - if (sb->pch.buffer->dl > 0) { - sb->pch.buffer->dl = -1; + if (sb->pch.buffer->dl > 0) chn_intr(sb->pch.channel); - } - if (sb->rch.buffer->dl > 0) { - sb->rch.buffer->dl = -1; + if (sb->rch.buffer->dl > 0) chn_intr(sb->rch.channel); - } } static int |