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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.