I posted here before about not being able to communicate with a HID
device.  My device is fairly simple and I wrote a usb driver around
usb-skeleton that worked perfectly.
The device has two interrupt endpoints (0x01 and 0x81) and I use
usb_fill_int_urb for writing and I use usb_bulk_msg for reading.

Everything has worked fine on my test system. I just moved the device
and driver to a new system and reading does not work at all. Writing
works fine. Here is the code I use for reading:

retval = usb_bulk_msg(dev->udev,
   usb_rcvintpipe(dev->udev, dev->intr_in_endpointAddr),
   dev->intr_in_buffer,
   min(dev->intr_in_size, count),
   &bytes_read, 0);

dev is my device context and I have asserted that intr_in_buffer and
intr_in_size are initialized. count is the number of bytes the user
wants. usb_rcvintpipe() returns a positive integer. This code is
called during the read file operation, so it is not called under an
interrupt. Yet, the return value is always -22.  Why would this work
fine on one system and not on another?

Am I doing anything wrong or is there another way to do this? I
suppose I could use usb_fill_int_urb for reading, but I actually
prefer the blocking call.

Thank you,
Paul


-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to