Index: src/sys/dev/sound/pcm/channel.c =================================================================== RCS file: /home/ncvs/src/sys/dev/sound/pcm/channel.c,v retrieving revision 1.99.2.3 diff -u -r1.99.2.3 channel.c --- src/sys/dev/sound/pcm/channel.c 29 Jan 2006 02:27:28 -0000 1.99.2.3 +++ src/sys/dev/sound/pcm/channel.c 4 Apr 2006 14:59:49 -0000 @@ -38,7 +38,6 @@ #define DMA_ALIGN_THRESHOLD 4 #define DMA_ALIGN_MASK (~(DMA_ALIGN_THRESHOLD - 1)) #endif -#define DMA_ALIGN_MASK(bps) (~((bps) - 1)) #define CANCHANGE(c) (!(c->flags & CHN_F_TRIGGERED)) @@ -1247,6 +1246,7 @@ int chn_getptr(struct pcm_channel *c) { +#if 0 int hwptr; int a = (1 << c->align) - 1; @@ -1256,11 +1256,14 @@ #if 1 hwptr &= ~a ; /* Apply channel align mask */ #endif -#if 0 hwptr &= DMA_ALIGN_MASK; /* Apply DMA align mask */ -#endif - hwptr &= DMA_ALIGN_MASK(sndbuf_getbps(c->bufhard)); return hwptr; +#endif + int hwptr; + + CHN_LOCKASSERT(c); + hwptr = (c->flags & CHN_F_TRIGGERED)? CHANNEL_GETPTR(c->methods, c->devinfo) : 0; + return (hwptr - (hwptr % sndbuf_getbps(c->bufhard))); } struct pcmchan_caps *