
Bref, voici ma "bizarrerie" du jour:
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/drivers/usb/musb/musb_gadget.c?id=refs/tags/v2.6.32.68#n513
/* kickstart next transfer if appropriate;
* the packet that just completed might not
* be transmitted for hours or days.
* REVISIT for double buffering...
* FIXME revisit for stalls too...
*/
Bref "oui ya un problem, oui on sais qu'il est la, mais faut pas nous demander de le corriger". Present dans toutes les bonnes cremeries 2.632 a au moins 2.6.35, le 2.6.37 semble etre corrigé sur ce point la (je dis bien semble je n'ai pas testé reelement) mais en gros ce que ca fait, c'est que dans certaines circonstances, l'USB arrete d'envoyer des trucs tant que le driver ou logiciel n'a rien a envoyer, et ce meme si des données sont en attente. Au boulot ca se produit sur l'émulation de port série, des données on été envoyé par l'application, sont bien dans le buffer de la pile USB, mais celle-ci a décidé que non c'était pas le moment donc je m'arrete la, et tant que l'application ne cherche pas a renvoyer quelque chose, le contenu du buffer reste la (et pour l'application bien sur le write c'est fait parfaitement sans erreur..)