Description of problem: Under FC6 Keyspan serial ports fail to read characters into the host. Version-Release number of selected component (if applicable): keyspan.c with last change 2003sep04. (this is the version distributed with FC6 kernel-2.6.18). How reproducible: Always Steps to Reproduce: 1. Attach Keyspan serial port (I have a Keyspan USA-49WLC) 2. Attach some sort of serial device (believe it or not, for testing I still have a VT100, if you are old enough to know what that is!) 3. Attempt to read characters (use minicom or any convenient software). Actual results: Output works. Input fails. Expected results: Both should work Additional info: The problem is that in keyspan.c ALL endpoints are being treated as BULK OUT. This obviously can't be correct because at least some have to be IN. If one looks at /proc/bus/usb/devices you will see that the IN endpoints are actually INTERRUPT style endpoints. I have modified keyspan.c to take this into account. My modified keyspan.c fixes the problem and both reading and writing of characters works. I have attempted to communicate via email with the apparent author, Hugh Blemings, but have had no response. Perhaps Keyspan should be notified, but I'm not sure how to do that. I have attached a diff file to show the changes I have made.
Created attachment 149973 [details] Difference file between original keyspan.c and my corrected version
I just noticed that I introduced a bug in my comments seen in the diff file. It says the Keyspan has BULK IN and INTERRUPT OUT endpoints. It really has BULK OUT and INTERRUPT IN endpoints, as the actual C code shows.
This may have been fixed in kernel 2.6.20-1.2925.fc6. Please test.
I just tested kernel 2.6.20-1.2925.fc6. My Keyspan serial adapters seem to be working OK. Thanks.