Dygmalab / Kaleidoscope-Bundle-Dygma

Kaleidoscope-Bundle-Dygma
5 stars 5 forks source link

USBDevice: do not use automatic multi-packet USB transactions #2

Closed HomerSp closed 3 years ago

HomerSp commented 3 years ago

If the host sends an unfinished OUT transaction (=> a transaction that ends with a data packet filled to the maximum allowed size but not followed by another shorter packet or a ZLP) the Transaction Completed interrupt is not fired and the incoming data remains suspendend until the host sends more data.

This commit fix the problem by disabilng multi-packet transactions.

upstream commit 3316756b0ce32d334b8798206c5bb88984b396b1.

This fixes https://github.com/Dygmalab/Bazecor/issues/139

AlexDygma commented 3 years ago

Great job @HomerSp !!

you managed to find the root-cause for this mess! i thought it would take longer 😄

you have my sincere compliments!, Thanks!!!

HomerSp commented 3 years ago

You're very welcome, just glad to help! I thought it would take longer to debug and fix too, so the workaround I made for Bazecor didn't really get much use, haha. Feel free to revert that now that we have a proper firmware fix. Although I guess it could be good to keep it for a while until people update their firmware :)