diff --git a/target/linux/ramips/patches-5.4/0999-mt76x8-ec200a.patch b/target/linux/generic/hack-5.4/995-usb-serial-option-add-ec200a.patch similarity index 65% rename from target/linux/ramips/patches-5.4/0999-mt76x8-ec200a.patch rename to target/linux/generic/hack-5.4/995-usb-serial-option-add-ec200a.patch index bd8353db1..5054c7213 100644 --- a/target/linux/ramips/patches-5.4/0999-mt76x8-ec200a.patch +++ b/target/linux/generic/hack-5.4/995-usb-serial-option-add-ec200a.patch @@ -16,20 +16,3 @@ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500K, 0xff, 0x00, 0x00) }, { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, ---- a/drivers/usb/serial/usb_wwan.c -+++ b/drivers/usb/serial/usb_wwan.c -@@ -478,6 +478,14 @@ static struct urb *usb_wwan_setup_urb(st - usb_sndbulkpipe(serial->dev, endpoint) | dir, - buf, len, callback, ctx); - -+ #if 1 //Added by Quectel for Zero Packet -+ if (dir == USB_DIR_OUT) { -+ if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C)) -+ urb->transfer_flags |= URB_ZERO_PACKET; -+ } -+ #endif -+ -+ - if (intfdata->use_zlp && dir == USB_DIR_OUT) - urb->transfer_flags |= URB_ZERO_PACKET; - diff --git a/target/linux/generic/pending-5.15/901-usb-add-more-modem-support.patch b/target/linux/generic/pending-5.15/901-usb-add-more-modem-support.patch new file mode 100644 index 000000000..755830589 --- /dev/null +++ b/target/linux/generic/pending-5.15/901-usb-add-more-modem-support.patch @@ -0,0 +1,27 @@ +--- a/drivers/net/usb/qmi_wwan.c ++++ b/drivers/net/usb/qmi_wwan.c +@@ -1419,6 +1419,9 @@ static const struct usb_device_id products[] = { + {QMI_FIXED_INTF(0x0489, 0xe0b5, 0)}, /* Foxconn T77W968 LTE with eSIM support*/ + {QMI_FIXED_INTF(0x2692, 0x9025, 4)}, /* Cellient MPL200 (rebranded Qualcomm 05c6:9025) */ + {QMI_QUIRK_SET_DTR(0x1546, 0x1342, 4)}, /* u-blox LARA-L6 */ ++ {QMI_FIXED_INTF(0x2077, 0x2002, 4)}, /* T&W TW04C */ ++ {QMI_FIXED_INTF(0x2077, 0x2003, 4)}, /* T&W TW12G */ ++ {QMI_FIXED_INTF(0x2077, 0x2004, 4)}, /* T&W TW510M */ + + /* 4. Gobi 1000 devices */ + {QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */ +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -2246,6 +2246,12 @@ static const struct usb_device_id option_ids[] = { + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a2, 0xff) }, /* Fibocom FM101-GL (laptop MBIM) */ + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a4, 0xff), /* Fibocom FM101-GL (laptop MBIM) */ + .driver_info = RSVD(4) }, ++ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a04, 0xff), /* Fibocom FM650 ECM */ ++ .driver_info = RSVD(5) }, ++ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a05, 0xff), /* Fibocom FM650 NCM */ ++ .driver_info = RSVD(6) }, ++ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a06, 0xff), /* Fibocom FM650 RNDIS */ ++ .driver_info = RSVD(6) }, + { USB_DEVICE_INTERFACE_CLASS(0x2df3, 0x9d03, 0xff) }, /* LongSung M5710 */ + { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1404, 0xff) }, /* GosunCn GM500 RNDIS */ + { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1405, 0xff) }, /* GosunCn GM500 MBIM */ diff --git a/target/linux/generic/pending-6.1/901-usb-add-more-modem-support.patch b/target/linux/generic/pending-6.1/901-usb-add-more-modem-support.patch new file mode 100644 index 000000000..887d7c28c --- /dev/null +++ b/target/linux/generic/pending-6.1/901-usb-add-more-modem-support.patch @@ -0,0 +1,27 @@ +--- a/drivers/net/usb/qmi_wwan.c ++++ b/drivers/net/usb/qmi_wwan.c +@@ -1427,6 +1427,9 @@ static const struct usb_device_id products[] = { + {QMI_FIXED_INTF(0x0489, 0xe0b5, 0)}, /* Foxconn T77W968 LTE with eSIM support*/ + {QMI_FIXED_INTF(0x2692, 0x9025, 4)}, /* Cellient MPL200 (rebranded Qualcomm 05c6:9025) */ + {QMI_QUIRK_SET_DTR(0x1546, 0x1342, 4)}, /* u-blox LARA-L6 */ ++ {QMI_FIXED_INTF(0x2077, 0x2002, 4)}, /* T&W TW04C */ ++ {QMI_FIXED_INTF(0x2077, 0x2003, 4)}, /* T&W TW12G */ ++ {QMI_FIXED_INTF(0x2077, 0x2004, 4)}, /* T&W TW510M */ + + /* 4. Gobi 1000 devices */ + {QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */ +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -2243,6 +2243,12 @@ static const struct usb_device_id option_ids[] = { + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a2, 0xff) }, /* Fibocom FM101-GL (laptop MBIM) */ + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a4, 0xff), /* Fibocom FM101-GL (laptop MBIM) */ + .driver_info = RSVD(4) }, ++ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a04, 0xff), /* Fibocom FM650 ECM */ ++ .driver_info = RSVD(5) }, ++ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a05, 0xff), /* Fibocom FM650 NCM */ ++ .driver_info = RSVD(6) }, ++ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a06, 0xff), /* Fibocom FM650 RNDIS */ ++ .driver_info = RSVD(6) }, + { USB_DEVICE_INTERFACE_CLASS(0x2df3, 0x9d03, 0xff) }, /* LongSung M5710 */ + { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1404, 0xff) }, /* GosunCn GM500 RNDIS */ + { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1405, 0xff) }, /* GosunCn GM500 MBIM */