Re: Hi all, I'm newbe, so apologize for my stupid questions.
Alan Stern <[email protected]>
| Newsgroups | gmane.linux.usb.devel |
|---|---|
| Message-ID | <[email protected]> |
On Sun, 23 Sep 2007, Fabio Giovagnini wrote: > > > But why I have 64 expected and 8 actual? > > > > Because the kernel doesn't know the maxpacket size for endpoint 0, > > since it hasn't yet seen the Device Descriptor. It guesses 64, but on > > your device the size is 8. So the driver thinks your device has sent a > > short packet and it ends the data stage of the transfer. It goes > > directly to the status stage without trying to read the other 10 bytes. > > > > Your device must be able to handle this. > > RE: Sorry Alan, how my device can handle this? > my Device Controller has to be configured with 8 bytes FIFO length and 8 bytes > of max packet length for endpoint 0 biung the control endpoint. > I cannot specify during endpoint configuration the endpoint 0 has to be > cconfigured with max packet lentgh of 64 bytes. > Should I intercept the final status stage interrupt ad trasmit in it the other > bytes? Not exactly. You should just treat the status stage interrupt as a normal status stage, and send back an ACK. Then the kernel will have the first 8 bytes of your device descriptor, so it will know the correct maxpacket size for your endpoint 0. Alan Stern ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel