Bonjour à tous. J'ai créé un module linux permettant de gérer une caméra usb. Pour l'instant, je teste sur ma clé usb et je bloque sur la lecture du endpoint 1 IN.
En effet, j'ai repris usb-skeleton.c, et dans la fonction read, la lecture du EP 1 IN se fait avec usb_bulk_msg(...) (tous les params ont l'air OK). Le souci, c'est que mon buffer de destination n'est pas rempli par cet appel ... qui termine systématiquement par un timed out (même pour 15 minutes d'attente).
J'ai donc essayé de remplacer usb_bulk_msg par le remplissage d'un urb (FILL_BULK_URB) puis l'appel de usb_submit_urb() ... mon buffer n'est toujours pas rempli et mon urb.status vaut -EINPROGRESS (alias : Operation now in progress).
J'ai essayé de faire un :
Code :
- while (urb.status==-EINPROGRESS) {}
|
juste après ... afin d'attendre la fin du transfert ... mais la, plantage, il ne sort jamais de mon while.
Je ne sais pas si il y a un bug connu avec certaines clé usb (le module initial usb-storage la gère pourtant sans problème) ou si c'est moi qui fait le trop laid.
Toute aide serait fortement appréciée. Merci d'avance !
Message édité par allawos le 20-01-2005 à 10:17:05