On Sat, 08 Sep 2012 12:14:39 +0200 peter.sheeren@xxxxxxxxx wrote: > if (((old_priv.flags & ASYNC_SPD_MASK) != > (priv->flags & ASYNC_SPD_MASK)) || > (((priv->flags & ASYNC_SPD_MASK) == ASYNC_SPD_CUST) && > (old_priv.custom_divisor != priv->custom_divisor))) { > change_speed(tty, port); > > Function change_speed() is called only when the baudrate > (custom_divisor) has changed but after a USB replug this assumption is > wrong. Also note that /dev/ttyUSB0 remains in existence on the system > under test. If it were up to me, I'd always send the baudrate setting > over the USB bus nomatter whether the baudrate (supposedly) has > changed or not. We don't do that because if you gratuitously send speed changes that have no effect the hardware seems to reset its configuration and you lose characters, something a lot of software doesn't expect. If you think that if check is the problem can you replace it with an unconditional call to change_speed(tty, port) and the re-test. That will confirm if it is the cause. If it is then we can think about fixing it somehow. Alan -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html