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
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
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
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