[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