dear linuxfoundation: I'm very sorry has some problems in before's submit. now i divided the problems in two patches. patch1:move ZTE CDMA device pid from zte_ev.c back to option.c. reason: the pid of 0xfffe device can't re-connect succusfull when driven by zte_ev, but work fine when driven by option. move the pid 0xfffe from zte_ev.c back to option.c. Signed-off-by:lei liu<liu.lei78@xxxxxxxxxx> diff -uprN -X linux-3.15.1/Documentation/dontdiff linux-3.15.1/drivers/usb/serial/option.c linux-3.15.1-update/drivers/usb/serial/option.c --- linux-3.15.1/drivers/usb/serial/option.c 2014-06-17 04:44:27.000000000 +0800 +++ linux-3.15.1-update/drivers/usb/serial/option.c 2014-06-18 15:19:21.936561280 +0800 @@ -1542,6 +1542,7 @@ static const struct usb_device_id option { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x05) }, { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x86, 0x10) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xfffe, 0xff, 0xff, 0xff) }, { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) }, diff -uprN -X linux-3.15.1/Documentation/dontdiff linux-3.15.1/drivers/usb/serial/zte_ev.c linux-3.15.1-update/drivers/usb/serial/zte_ev.c --- linux-3.15.1/drivers/usb/serial/zte_ev.c 2014-06-17 04:44:27.000000000 +0800 +++ linux-3.15.1-update/drivers/usb/serial/zte_ev.c 2014-06-20 15:13:40.537941903 +0800 @@ -274,8 +274,6 @@ static void zte_ev_usb_serial_close(stru static const struct usb_device_id id_table[] = { /* AC8710, AC8710T */ { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xffff, 0xff, 0xff, 0xff) }, - /* AC8700 */ - { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xfffe, 0xff, 0xff, 0xff) }, /* MG880 */ { USB_DEVICE(0x19d2, 0xfffd) }, { USB_DEVICE(0x19d2, 0xfffc) }, patch2: Modify the parameter from 0x0003 to 0x0000. you must submit patch1 at first. Reason:In the USB serial protocol, if set the control state (SET_CONTROL_LINE_STATE(22h)) and the parameter of RTS must be 0x0000 that make the carrier signal invalid state when close network. otherwise can't disconnect the network. Signed-off-by:lei liu<liu.lei78@xxxxxxxxxx> --- linux-3.15.1-update/drivers/usb/serial/zte_ev.c.orig 2014-06-20 16:17:12.449795593 +0800 +++ linux-3.15.1-update/drivers/usb/serial/zte_ev.c 2014-06-20 16:14:56.193800822 +0800 @@ -257,12 +257,12 @@ static void zte_ev_usb_serial_close(stru /* send 8th cmd */ /* - * 16.0 CTL 21 22 03 00 00 00 00 00 + * 16.0 CTL 21 22 00 00 00 00 00 00 */ len = 0; result = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x22, 0x21, - 0x0003, 0x0000, NULL, len, + 0x0000, 0x0000, NULL, len, USB_CTRL_GET_TIMEOUT); dev_dbg(dev, "result = %d\n", result); thanks lei liu ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥