+ if (d->type == ES_TYPE_DAC1)
+ return (ENODEV);
if (d->flags & SND_F_READING) {
/* This shouldn't happen and is actually silly */
tsleep(&s, PZERO, "sndar", hz);
@@ -359,10 +390,11 @@
}
d->flags |= SND_F_READING;
- /*
- * XXX Check for SND_F_INIT. If set, wait for DMA to run empty and
- * re-initialize the board
- */
+ if (d->flags & SND_F_INIT) {
+ es_rdabort(d);
-#define ES_BUFFSIZE 0x20000 /* We're PCI! Use a large buffer */
+#define ES_BUFFSIZE 0x20000 /* We're PCI! Use a large buffer */
+#define ES_MIDIBUFFSIZE 0x2000