Re: EOVERFLOW problem with usb_control_msg
Alan Stern <[email protected]>
| Newsgroups | gmane.linux.usb.devel |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 20 Aug 2007, Frank A. Kingswood wrote: > Alan Stern wrote: > >> I am trying to develop a kernel module for the CH341 USB-to-serial > >> adaptor. I have working libusb code which sets up the device, but am > >> having problems repeating this in the kernel. > >> > >> The first control message that reads data from the device returns with > >> -EOVERFLOW, which the documentation describes as the USB device > >> babbling. There is no data on the bus, however. > > USBmon captured this: > > ffff810035075300 1054697874 S Co:3:004:0 s c0 5f 0000 0000 04d2 1234 > =\ 00000000 00000000 8000006c 449ba52f 00000000 00000002 000186a3 00000003 > ffff810035075300 1054701674 C Co:3:004:0 -75 1234 > > ffff810035075780 1067015017 S Co:3:004:0 s 01 0b 0000 0000 0000 0 > ffff810035075780 1067016275 C Co:3:004:0 0 0 > > The first two lines correspond to this call in my driver code: > r=ch341_control_in(dev, 0x5f, 0, 0, buffer, size); It looks like your driver thinks it is performing a control-IN transfer, but the usbmon log shows that it is really doing a control-OUT. Could that be your problem? It stems from the fact that ch341_control_in uses usb_sndctrlpipe() instead of usb_rcvctrlpipe(). Alan Stern ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel