[alsa-devel] Tascam US-428 USB Problems

Karsten Wiese fzu at wemgehoertderstaat.de
Fri Aug 17 09:19:37 CEST 2007

Am Freitag, 17. August 2007 schrieb Michael Bourgeous:
> I have some more information.  I found out that Windows users of the
> Tascam experience system BSODs when power management is enabled.  So,
> I disabled PowerNow and acpid, and I no longer get the USB error
> messages in the syslog or jackd crashes.  This leads me to believe
> that something, somewhere in the kernel, is relying upon the CPU cycle
> count for timing, and when the CPU switches from 1GHz to 1.8GHz or
> 2.4GHz, it triggers a buffer overrun.  Whether that's in the usx2y
> driver or in the host controller code I don't know.

Try to only disable cpu speed changes.
You can "preselect" fixed speed by doing i.e.:
	$ echo 1800000>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
	$ echo 1800000>/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
	$ echo 1800000>/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
	$ echo 1800000>/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
Is that enough to stabilize things?

I think the buffer overrun is caused by the cpu not "cooperating" with the
OHCI's DMA during the frequency transitions.

> Still, performance is less than I would expect, with occasional xruns
> and hundreds of "delay longer than estimated" messages, when running
> at 256 samples latency (the setting I typically use in Windows).  To
> the credit of the Linux driver, I'm able to get down to 128 samples (2
> periods of 64 frames), but I can only play a few notes at a time in
> ZynAddSubFX before it xruns.  Performance is slightly better with

USB 1.1 transfers happen at 1ms bounderies. Setting 64Frames/period period
interrupts will happen within 1ms or 2ms distances.
This jitter alone limits the cpu's usability for the sound app to less 
than 50%.
128Frames/period causes interrupts every 2 or 3 ms, so you can use <66%
of the cpu's cycles.
Above is for 2 periods.
I set 128Frames/period, 3periods here.


> jackdmp, which I modified to fully disable its broken usx2y driver,
> but its use is very inconvenient.  I also switched from jackd 102.20
> to 103, which doesn't crash when the syslog messages happen.
> I'm running a 2.6.20 kernel with full preemption, with the IRQ-xx
> process for the USB port set to RT priority 90, SCHED_FIFO.  During
> all of these tests, the maximum latency reported in
> /proc/sys/preempt_max_latency was 33 usecs.
> Mike Bourgeous

More information about the Alsa-devel mailing list