On Tue, Sep 02, 2003 at 10:48:18AM -0400, Joe Philipps wrote: > The first one (of \r) goes through just fine. The second > one (of \n) however sees the INPROGRESS flag, and dutifully reports > back to its caller that the char has not been written (returns written > count != requested count, basically). The routine that called it, > serial_write(), also dutifully returns the count written. But the > problem is that particular return value is discarded because the > funtion that called it returns void. There's no "retry loop" or > anything.
Yup, that's a real problem and has been documented as such for quite some time now :( > So what's the most practical solution? Can serial_write() pause until > INPROGRESS clears? That wouldn't be the nicest, but could work. > Should a put_char() be added, and how should it be implemented? It had better not fail either. > Should serial_write() just accept the charater and buffer it somehow, > and write it onto the USB at some future time (such as in the callback > routines)? Some individual usb-serial drivers work this way. So for now, this is the easiest solution for this problem. But for the "proper" solution, the usb-serial core should probably be changed over to use the serial core. That would help out with this problem, and others. But that's a 2.7 issue at the earliest. For now, you might just want to tweak the keyspan driver to work with your setup. thanks, greg k-h ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel