On Thu, Aug 13, 2009 at 12:55:54PM -0700, David VomLehn wrote: > On Thu, Aug 13, 2009 at 08:50:18PM +0100, Alan Cox wrote: > > > do_output_char() function uses the struct tty_operations function write_room() > > > to determine whether it is possible to write two characters. It uses > > > tty_put_char() for each character which, for the USB generic serial driver, > > > translates into a write() for each character. For the USB generic serial > > > driver the value returned by write_room() only applies to the next write(). > > > > The USB serial driver is broken, fix it instead. It's not even hard to > > fix. > > > > > + tty->ops->write(tty, crlf, ARRAY_SIZE(crlf)); > > > + return ARRAY_SIZE(crlf); > > > > Emphatic NAK. Someone needs to actually fix the broken USB drivers for > > once. This is just one example of where the device will go kersplat if its > > broken, others include things like losing flow control. > > Works for me; please consider the patch withdrawn. I'll take a crack at fixing > the generic serial driver the right way; if other drivers are doing mix-and-match > with per-device code and generic code, they could get broken. I have no way to > test for this, so I'm hoping others will help out. I have a whole box of different usb-serial devices, and can test just about everything out. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html