BO will disable USB input until the device opens. This will avoid garbage chars waiting flood the TTY. This mimics a real UART device better. For initial termios to reach USB core, USB driver has to be registered before TTY driver. Signed-off-by: Joakim Tjernlund <joakim.tjernlund@xxxxxxxxxxxx> Cc: stable@xxxxxxxxxxxxxxx --- I hope this change makes sense to you, if so I belive ttyUSB could do the same. drivers/usb/class/cdc-acm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 751f00285ee6..5680f71200e5 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -1999,19 +1999,19 @@ static int __init acm_init(void) acm_tty_driver->subtype = SERIAL_TYPE_NORMAL, acm_tty_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV; acm_tty_driver->init_termios = tty_std_termios; - acm_tty_driver->init_termios.c_cflag = B9600 | CS8 | CREAD | + acm_tty_driver->init_termios.c_cflag = B0 | CS8 | CREAD | HUPCL | CLOCAL; tty_set_operations(acm_tty_driver, &acm_ops); - retval = tty_register_driver(acm_tty_driver); + retval = usb_register(&acm_driver); if (retval) { put_tty_driver(acm_tty_driver); return retval; } - retval = usb_register(&acm_driver); + retval = tty_register_driver(acm_tty_driver); if (retval) { - tty_unregister_driver(acm_tty_driver); + usb_deregister(&acm_driver); put_tty_driver(acm_tty_driver); return retval; } -- 2.26.2