一、内核配置与修改
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_SERIAL_OPTION=y
CONFIG_USBNET=y
diff --git a/kernel/drivers/usb/serial/option.c b/kernel/drivers/usb/serial/option.c
old mode 100644
new mode 100755
index a47eac02f..d3849f84b
--- a/kernel/drivers/usb/serial/option.c
+++ b/kernel/drivers/usb/serial/option.c
@@ -1983,6 +1983,7 @@ static const struct usb_device_id option_ids[] = {
.driver_info = RSVD(4) | RSVD(5) },
{
USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0105, 0xff), /* Fibocom NL678 series */
.driver_info = RSVD(6) },
+ {
USB_DEVICE_AND_INTERFACE_INFO(0x2c7c, 0x0900, 0xff, 0x00, 0x00) },
{
} /* Terminating entry */
};
MODULE_DEVICE_TABLE(usb, option_ids);
@@ -2017,6 +2018,7 @@ static struct usb_serial_driver option_1port_device = {
.suspend = usb_wwan_suspend,
.resume = usb_wwan_resume,
+ .reset_resume = usb_wwan_resume,
};
diff --git a/kernel/drivers/usb/serial/usb_wwan.c b/kernel/drivers/usb/serial/usb_wwan.c
old mode 100644
new mode 100755
index 802249072..b4ef55799
--- a/kernel/drivers/usb/serial/usb_wwan.c
+++ b/kernel/drivers/usb/serial/usb_wwan.c
@@ -508,7 +508,8 @@ static struct urb *usb_wwan_setup_urb(struct usb_serial_port *port,
if (dir == USB_DIR_OUT) {
if ((desc-