aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/class/cdc-acm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
-rw-r--r--drivers/usb/class/cdc-acm.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 1b68fed464cb..ed8c62b2d9d1 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -581,6 +581,13 @@ static int acm_tty_install(struct tty_driver *driver, struct tty_struct *tty)
581 if (retval) 581 if (retval)
582 goto error_init_termios; 582 goto error_init_termios;
583 583
584 /*
585 * Suppress initial echoing for some devices which might send data
586 * immediately after acm driver has been installed.
587 */
588 if (acm->quirks & DISABLE_ECHO)
589 tty->termios.c_lflag &= ~ECHO;
590
584 tty->driver_data = acm; 591 tty->driver_data = acm;
585 592
586 return 0; 593 return 0;
@@ -1657,6 +1664,9 @@ static const struct usb_device_id acm_ids[] = {
1657 { USB_DEVICE(0x0e8d, 0x0003), /* FIREFLY, MediaTek Inc; andrey.arapov@gmail.com */ 1664 { USB_DEVICE(0x0e8d, 0x0003), /* FIREFLY, MediaTek Inc; andrey.arapov@gmail.com */
1658 .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ 1665 .driver_info = NO_UNION_NORMAL, /* has no union descriptor */
1659 }, 1666 },
1667 { USB_DEVICE(0x0e8d, 0x2000), /* MediaTek Inc Preloader */
1668 .driver_info = DISABLE_ECHO, /* DISABLE ECHO in termios flag */
1669 },
1660 { USB_DEVICE(0x0e8d, 0x3329), /* MediaTek Inc GPS */ 1670 { USB_DEVICE(0x0e8d, 0x3329), /* MediaTek Inc GPS */
1661 .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ 1671 .driver_info = NO_UNION_NORMAL, /* has no union descriptor */
1662 }, 1672 },