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