applet.audio.yamaha_opl: flush command stream each...
by whitequark 6 years 3 months
applet.audio.yamaha_opl: flush command stream each 20 ms.

Otherwise, the playback coroutine is starving the record coroutine.
This doesn't seem entirely reliable--other options?
dee9eee6
applet.audio.yamaha_opl: disable recording after p...
by whitequark 6 years 3 months
applet.audio.yamaha_opl: disable recording after playback is done.

This was formerly hacked off because of the issues with pipelining
(most likely the start command arriving at an inappropriate time,
but possibly something else), and it is no longer necessary after
commit e59730fb.
1048640e
access.direct.demultiplexer: pipeline reads and wr...
by whitequark 6 years 3 months
access.direct.demultiplexer: pipeline reads and writes.

This significantly improves throughput (up to ~21 MB/s) without any
particular action on behalf of applets.

Hinting is now obsolete. Two applets used hinting:
* memory-floppy: hinting is removed (untested);
* audio-yamaha-opl: hinting and custom pipelining are removed.

The audio-yamaha-opl applet requires explicit flushes now, since
otherwise the playback coroutine will not yield nearly often enough.

The `benchmark loopback` mode also now works, since it was hanging
not because of the arbiter (the arbiter will not, in fact, cause
starvation) but because of a deadlock between read and write
coroutines inherent in the old demultiplexer implementation.

Fixes #73.
e59730fb
device.hardware: only cancel submitted transfers.
by whitequark 6 years 3 months
device.hardware: only cancel submitted transfers.

Before this commit, cancelling the future after the transfer has
already finished would result in a LIBUSB_ERROR_NOT_FOUND exception
raised in the done callback.
a3f77716
applet.internal.benchmark: make sequence generatio...
by whitequark 6 years 3 months
applet.internal.benchmark: make sequence generation much faster.

Also, make the -c argument take a byte count, not an element count;
element count doesn't make any sense in this context.
6ccdd3a7
applet.internal.benchmark: fix throughput for loop...
by whitequark 6 years 3 months
applet.internal.benchmark: fix throughput for loopback mode.

Loopback mode transfers everything twice, so it's double the value
currently shown.

Also, show values in Mbps as well.
3a042309
applet.internal.benchmark: add missing IN FIFO flu...
by whitequark 6 years 3 months
52c8d2b2
gateware.fx2: cleanup. NFCI.
by whitequark 6 years 3 months
ee0c1ae8
revC1: add inline resistors to AUX/SYNC, add testp...
by Hector Martin 6 years 3 months
revC1: add inline resistors to AUX/SYNC, add testpoints to rear
cd921fda
cli: suggest valid revisions if --rev fails parsin...
by whitequark 6 years 3 months
cli: suggest valid revisions if --rev fails parsing.
f746966d
Report a bug