[alsa-devel] Boss GT-001
Keith A. Milner
maillist at superlative.org
Thu Oct 8 16:03:15 CEST 2015
On Thursday 08 Oct 2015 12:51:54 Keith A. Milner wrote:
> I have some usbmon dumps which I will try to find time to analyze.
>
Well the results of my packet dumps were interesting.
For audio playback, I noticed the Windows drive seemed to enable the IN
endpoint (EP 14) as well as the OUT one (EP 13). This seemed to match with the
view that explicit feedback is required for asynchronous host-to-device
transfers.
So I've changed the quirk as follows, which appears to work for playback
still:
.ep_attr = 0x15,
This is USB_ENDPOINT_USAGE_FEEDBACK + USB_ENDPOINT_SYNC_ASYNC +
USB_ENDPOINT_XFER_ISOC
I say works "still" because the previous value I had (0x01) worked as well.
However, this was basically setting the sync type to NONE instead of ASYNC,
and didn't configure any feedback type. This was probably free-running and,
effectively, similar to "ADAPTIVE", but is probably prone to occasional sync
problems/buffer overflows on the device.
The resulting usbmon dump seems to follow the one from Windows now.
Input is still a problem!
Under ALSA, the input stream (via URB_ISOCHRONOUS in requests/responses) to IN
endpoint 14 seems to be working. However, under Windows the driver also
initiates the OUT endpoint 13 which then has an output stream (via
URB_ISOCHRONOUS out requests/responses).
I don't know if this is required by the device for some reason (explicit
feedback, although that doesn't make much sense to me?) or if it's just
something irrelevant that the Windows driver happens to do.
Either way, Linux seems to get stuck with the input data (for instance, the
playhead in Audacity doesn't move).
Cheers,
Keith
More information about the Alsa-devel
mailing list