Hi
We have seen that if interrupt endpoint does have some data, which the 
application has not read then this kinds of issues are seen.
You need to do clear halt before calling interrupt read. This will clear any 
invalid USB states.

usb_clear_halt(hid->dev_handle,0x81); //if endpoint is 0x81
usb_reset(hid->dev_handle);

Please make sure you read all the bytes from interrupt endpoint in multiple s 
of 64.
lsusb -vvv will give info reagrding the size of interrupt endpoint descriptor.
interrupt_read expects size to be accurate otherwise it will stall endpoints 
and gives incorrect results.
Thanks
Amruth p.v


--- On Tue, 9/9/08, Marian Aldenhövel <[EMAIL PROTECTED]> wrote:

> From: Marian Aldenhövel <[EMAIL PROTECTED]>
> Subject: Re: [libhid-discuss] Still can't interrupt_read() properly
> To: "libhid-discuss List" <[email protected]>
> Date: Tuesday, September 9, 2008, 2:40 PM
> Hi,
> 
> > The issue may be that interrupt is not getting clear
> The USB state is not getting 
> > cleared. Please try using usb_clear_halt and it should
> work.  
> 
> At what point should I try that? Before I send my
> output-report (I am 
> expecting a response for each output report)? Before I call
> interrupt_read()? 
> Or in response to a error result from interrupt_read()?
> 
> Ciao, MM
> -- 
> Marian Aldenhövel, Rosenhain 23, 53123 Bonn
> http://www.marian-aldenhoevel.de
> "I ran some quick calculations on it. He's about
> 80% on the right
>   track.  That leaves him only 20% dead when he
> crashes." Bob C
> 
> 
> 
> _______________________________________________
> libhid-discuss mailing list
> [email protected]
> http://lists.alioth.debian.org/mailman/listinfo/libhid-discuss


      


_______________________________________________
libhid-discuss mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/libhid-discuss

Reply via email to