--- /usr/src/sys/dev/sound/pci/ich.c Mon May 1 12:20:19 2006 +++ /ich.c Mon May 1 12:19:49 2006 @@ -284,7 +284,9 @@ for (i = 0; i < ICH_DTBL_LENGTH; i++) { ch->dtbl[i].buffer = base + (ch->blksz * (i % ch->blkcnt)); ch->dtbl[i].length = ICH_BDC_IOC - | (ch->blksz / ch->parent->sample_size); + | (ch->blksz / + ((ch->channel->direction == PCMDIR_PLAY) ? + ch->parent->sample_size : 2)); } }