diff options
Diffstat (limited to 'drivers/usb/serial')
| -rw-r--r-- | drivers/usb/serial/metro-usb.c | 8 | ||||
| -rw-r--r-- | drivers/usb/serial/option.c | 26 |
2 files changed, 26 insertions, 8 deletions
diff --git a/drivers/usb/serial/metro-usb.c b/drivers/usb/serial/metro-usb.c index 81423f7361db..d47eb06fe463 100644 --- a/drivers/usb/serial/metro-usb.c +++ b/drivers/usb/serial/metro-usb.c | |||
| @@ -222,14 +222,6 @@ static int metrousb_open(struct tty_struct *tty, struct usb_serial_port *port) | |||
| 222 | metro_priv->throttled = 0; | 222 | metro_priv->throttled = 0; |
| 223 | spin_unlock_irqrestore(&metro_priv->lock, flags); | 223 | spin_unlock_irqrestore(&metro_priv->lock, flags); |
| 224 | 224 | ||
| 225 | /* | ||
| 226 | * Force low_latency on so that our tty_push actually forces the data | ||
| 227 | * through, otherwise it is scheduled, and with high data rates (like | ||
| 228 | * with OHCI) data can get lost. | ||
| 229 | */ | ||
| 230 | if (tty) | ||
| 231 | tty->low_latency = 1; | ||
| 232 | |||
| 233 | /* Clear the urb pipe. */ | 225 | /* Clear the urb pipe. */ |
| 234 | usb_clear_halt(serial->dev, port->interrupt_in_urb->pipe); | 226 | usb_clear_halt(serial->dev, port->interrupt_in_urb->pipe); |
| 235 | 227 | ||
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index adf8ce72be50..417ab1b0aa30 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c | |||
| @@ -497,6 +497,15 @@ static void option_instat_callback(struct urb *urb); | |||
| 497 | 497 | ||
| 498 | /* MediaTek products */ | 498 | /* MediaTek products */ |
| 499 | #define MEDIATEK_VENDOR_ID 0x0e8d | 499 | #define MEDIATEK_VENDOR_ID 0x0e8d |
| 500 | #define MEDIATEK_PRODUCT_DC_1COM 0x00a0 | ||
| 501 | #define MEDIATEK_PRODUCT_DC_4COM 0x00a5 | ||
| 502 | #define MEDIATEK_PRODUCT_DC_5COM 0x00a4 | ||
| 503 | #define MEDIATEK_PRODUCT_7208_1COM 0x7101 | ||
| 504 | #define MEDIATEK_PRODUCT_7208_2COM 0x7102 | ||
| 505 | #define MEDIATEK_PRODUCT_FP_1COM 0x0003 | ||
| 506 | #define MEDIATEK_PRODUCT_FP_2COM 0x0023 | ||
| 507 | #define MEDIATEK_PRODUCT_FPDC_1COM 0x0043 | ||
| 508 | #define MEDIATEK_PRODUCT_FPDC_2COM 0x0033 | ||
| 500 | 509 | ||
| 501 | /* Cellient products */ | 510 | /* Cellient products */ |
| 502 | #define CELLIENT_VENDOR_ID 0x2692 | 511 | #define CELLIENT_VENDOR_ID 0x2692 |
| @@ -554,6 +563,10 @@ static const struct option_blacklist_info net_intf1_blacklist = { | |||
| 554 | .reserved = BIT(1), | 563 | .reserved = BIT(1), |
| 555 | }; | 564 | }; |
| 556 | 565 | ||
| 566 | static const struct option_blacklist_info net_intf2_blacklist = { | ||
| 567 | .reserved = BIT(2), | ||
| 568 | }; | ||
| 569 | |||
| 557 | static const struct option_blacklist_info net_intf3_blacklist = { | 570 | static const struct option_blacklist_info net_intf3_blacklist = { |
| 558 | .reserved = BIT(3), | 571 | .reserved = BIT(3), |
| 559 | }; | 572 | }; |
| @@ -1099,6 +1112,8 @@ static const struct usb_device_id option_ids[] = { | |||
| 1099 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1298, 0xff, 0xff, 0xff) }, | 1112 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1298, 0xff, 0xff, 0xff) }, |
| 1100 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1299, 0xff, 0xff, 0xff) }, | 1113 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1299, 0xff, 0xff, 0xff) }, |
| 1101 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1300, 0xff, 0xff, 0xff) }, | 1114 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1300, 0xff, 0xff, 0xff) }, |
| 1115 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1402, 0xff, 0xff, 0xff), | ||
| 1116 | .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, | ||
| 1102 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff, | 1117 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff, |
| 1103 | 0xff, 0xff), .driver_info = (kernel_ulong_t)&zte_k3765_z_blacklist }, | 1118 | 0xff, 0xff), .driver_info = (kernel_ulong_t)&zte_k3765_z_blacklist }, |
| 1104 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) }, | 1119 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) }, |
| @@ -1240,6 +1255,17 @@ static const struct usb_device_id option_ids[] = { | |||
| 1240 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x02, 0x01) }, | 1255 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x02, 0x01) }, |
| 1241 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x00, 0x00) }, | 1256 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x00, 0x00) }, |
| 1242 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x02, 0x01) }, /* MediaTek MT6276M modem & app port */ | 1257 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x02, 0x01) }, /* MediaTek MT6276M modem & app port */ |
| 1258 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_1COM, 0x0a, 0x00, 0x00) }, | ||
| 1259 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_5COM, 0xff, 0x02, 0x01) }, | ||
| 1260 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_5COM, 0xff, 0x00, 0x00) }, | ||
| 1261 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM, 0xff, 0x02, 0x01) }, | ||
| 1262 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM, 0xff, 0x00, 0x00) }, | ||
| 1263 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7208_1COM, 0x02, 0x00, 0x00) }, | ||
| 1264 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7208_2COM, 0x02, 0x02, 0x01) }, | ||
| 1265 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FP_1COM, 0x0a, 0x00, 0x00) }, | ||
| 1266 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FP_2COM, 0x0a, 0x00, 0x00) }, | ||
| 1267 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FPDC_1COM, 0x0a, 0x00, 0x00) }, | ||
| 1268 | { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FPDC_2COM, 0x0a, 0x00, 0x00) }, | ||
| 1243 | { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) }, | 1269 | { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) }, |
| 1244 | { } /* Terminating entry */ | 1270 | { } /* Terminating entry */ |
| 1245 | }; | 1271 | }; |
