| Summary: | newpcm doesn't work with Vibra16X | ||
|---|---|---|---|
| Product: | Base System | Reporter: | ab <ab> |
| Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | Unspecified | ||
| Hardware: | Any | ||
| OS: | Any | ||
State Changed From-To: open->closed cg reports that this works now |
A process that tries to play PCM data via /dev/dsp stops in "pcmwr" state almost as soon as the playing starts. The process is still interruptible (i.e. it responds to ^C, etc). It seems that the interrupt service routine (sb_intr) is not being called when the DMA transfer completes. systat -vm 1 shows no interrupt count for pcm0 device, and a simple hack inserted to sb_intr() (like printf("sb_intr() was called\n");) is never executed. All the other soundcard functions which don't involve interrupts, such as mixer adjustment, work normally. IMHO the problem seems to be that the soundcard interrupt is misregistered (or not registered at all) with the resource management service, otherwise systat -vm should show the correct IRQ for pcm0 at' least. Fix: No fix or workaround known. How-To-Repeat: Enable newpcm in the kernel, then play an MP3 file with mpg123.