I received a very helpful email response to my previous thread about trying to get the Boss GT-1 pedalboard working reliably, and as a result I now have a working solution.
The issue seems to be that the GT-1 does not send any capture data until it gets some playback data first.
This block in the "snd_usb_endpoint_start()" function in endpoint.c:
"if (snd_usb_endpoint_implicit_feedback_sink(ep)) { ... }"
causes the system to wait to send output until some capture urbs are received.
As a result, both sides end up waiting on the other, and nothing happens.
Simply commenting out that "if" block makes the GT-1 work perfectly with implicit feedback enabled.
I plan to submit a patch for this after I do a bit of legwork to see if the fix works for other recent Boss devices (Katana, other GT devices, etc.). Perhaps making the relevant "if" block conditional on a flag, with a USB_ID switch statement to set the flag? Any feedback would be welcome.
Thanks,
Mike