make recording of clct(4) work. namely,

- cs4281_intr: advance a pointer after copying data.
- cs4281_trigger_input: fix an inverted condition about dma mode.
This commit is contained in:
yamt 2004-11-02 00:40:08 +00:00
parent 4f022501ab
commit e89aeb518a
1 changed files with 4 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: cs4281.c,v 1.20 2004/10/29 12:57:18 yamt Exp $ */
/* $NetBSD: cs4281.c,v 1.21 2004/11/02 00:40:08 yamt Exp $ */
/*
* Copyright (c) 2000 Tatoku Ogaito. All rights reserved.
@ -43,7 +43,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: cs4281.c,v 1.20 2004/10/29 12:57:18 yamt Exp $");
__KERNEL_RCSID(0, "$NetBSD: cs4281.c,v 1.21 2004/11/02 00:40:08 yamt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -364,6 +364,7 @@ cs4281_intr(p)
if ((sc->sc_ri & 1) == 0)
empty_dma += sc->hw_blocksize;
memcpy(sc->sc_rn, empty_dma, sc->hw_blocksize);
sc->sc_rn += sc->hw_blocksize;
if (sc->sc_rn >= sc->sc_re)
sc->sc_rn = sc->sc_rs;
if (sc->sc_rrun) {
@ -687,7 +688,7 @@ cs4281_trigger_input(addr, start, end, blksize, intr, arg, param)
sc->sc_rn = sc->sc_rs;
dma_count = sc->dma_size;
if (param->precision * param->factor == 8)
if (param->precision * param->factor != 8)
dma_count /= 2;
if (param->channels > 1)
dma_count /= 2;