1.3.34 and 1.3.35 both break my SoundBlaster 16 card. The driver
initializes fine, but when something like Doom tries to access /dev/dsp,
it times out.
Sound initialization started
Snd 2 <SoundBlaster 16 4.13> at 0x220 irq 5 drq 1
Snd 6 <SoundBlaster 16 4.13> at 0x220 irq 5 drq 5
Snd 7 <SoundBlaster 16 MPU-401> at 0x330 irq 5 drq 0
Sound initialization complete
which yields in syslog
Sound: DMA (output) timed out - IRQ/DRQ config error?
and here's a trace from the doom sndserver
open("/dev/dsp", O_WRONLY) = 4
ioctl(4, 0xc004500a, 0xbffffba8) = 0
ioctl(4, 0x5000, 0) = 0
ioctl(4, 0xc0045002, 0xbffffba8) = 0
ioctl(4, 0xc0045003, 0xbffffba8) = 0
ioctl(4, 0x8004500b, 0xbffffba8) = 0
ioctl(4, 0xc0045005, 0xbffffba8) = 0
write(2, "ready\n", 6ready
) = 6
select(256, [0], NULL, NULL, {0, 0}) = 0 (Timeout)
write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2048) = 2048
select(256, [0], NULL, NULL, {0, 0}) = 0 (Timeout)
write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2048) = 2048
select(256, [0], NULL, NULL, {0, 0}) = 0 (Timeout)
write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2048) = -1 EIO (I/O error)
select(256, [0], NULL, NULL, {0, 0}) = 0 (Timeout)
write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2048
there's a new ioctl() in the driver for SNDCTL_DSP_SETFRAGMENT which
apparently needs to be called once between between open() and
read()/write() or ioctl(SNDCTL_DSP_GETBLCKSIZE). Maybe it has something
to do with it.
Troy