| From c979fb5ece2dc11cc9cc3d5c66f750e210bfdee2 Mon Sep 17 00:00:00 2001 |
| From: Fabio Porcedda <fabio.porcedda@gmail.com> |
| Date: Wed, 5 Feb 2025 18:16:45 +0100 |
| Subject: USB: serial: option: add Telit Cinterion FN990B compositions |
| |
| From: Fabio Porcedda <fabio.porcedda@gmail.com> |
| |
| commit c979fb5ece2dc11cc9cc3d5c66f750e210bfdee2 upstream. |
| |
| Add the following Telit Cinterion FN990B40 compositions: |
| |
| 0x10d0: rmnet + tty (AT/NMEA) + tty (AT) + tty (AT) + tty (AT) + |
| tty (diag) + DPL + QDSS (Qualcomm Debug SubSystem) + adb |
| T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 17 Spd=480 MxCh= 0 |
| D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 |
| P: Vendor=1bc7 ProdID=10d0 Rev=05.15 |
| S: Manufacturer=Telit Cinterion |
| S: Product=FN990 |
| S: SerialNumber=43b38f19 |
| C: #Ifs= 9 Cfg#= 1 Atr=e0 MxPwr=500mA |
| I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan |
| E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=32ms |
| I: If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option |
| E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=84(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=86(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=88(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8a(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option |
| E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8b(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 6 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=80 Driver=(none) |
| E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 7 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=70 Driver=(none) |
| E: Ad=8d(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 8 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs |
| E: Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| |
| 0x10d1: MBIM + tty (AT/NMEA) + tty (AT) + tty (AT) + tty (AT) + |
| tty (diag) + DPL + QDSS (Qualcomm Debug SubSystem) + adb |
| T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 16 Spd=480 MxCh= 0 |
| D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 |
| P: Vendor=1bc7 ProdID=10d1 Rev=05.15 |
| S: Manufacturer=Telit Cinterion |
| S: Product=FN990 |
| S: SerialNumber=43b38f19 |
| C: #Ifs=10 Cfg#= 1 Atr=e0 MxPwr=500mA |
| I: If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim |
| E: Ad=82(I) Atr=03(Int.) MxPS= 64 Ivl=32ms |
| I: If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim |
| E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option |
| E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=84(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=86(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=88(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8a(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option |
| E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8b(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 7 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=80 Driver=(none) |
| E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 8 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=70 Driver=(none) |
| E: Ad=8d(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 9 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs |
| E: Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| |
| 0x10d2: RNDIS + tty (AT/NMEA) + tty (AT) + tty (AT) + tty (AT) + |
| tty (diag) + DPL + QDSS (Qualcomm Debug SubSystem) + adb |
| T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 18 Spd=480 MxCh= 0 |
| D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 |
| P: Vendor=1bc7 ProdID=10d2 Rev=05.15 |
| S: Manufacturer=Telit Cinterion |
| S: Product=FN990 |
| S: SerialNumber=43b38f19 |
| C: #Ifs=10 Cfg#= 1 Atr=e0 MxPwr=500mA |
| I: If#= 0 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=04 Prot=01 Driver=rndis_host |
| E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=32ms |
| I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host |
| E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option |
| E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=84(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=86(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=88(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8a(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option |
| E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8b(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 7 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=80 Driver=(none) |
| E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 8 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=70 Driver=(none) |
| E: Ad=8d(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 9 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs |
| E: Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| |
| 0x10d3: ECM + tty (AT/NMEA) + tty (AT) + tty (AT) + tty (AT) + |
| tty (diag) + DPL + QDSS (Qualcomm Debug SubSystem) + adb |
| T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 20 Spd=480 MxCh= 0 |
| D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 |
| P: Vendor=1bc7 ProdID=10d3 Rev=05.15 |
| S: Manufacturer=Telit Cinterion |
| S: Product=FN990 |
| S: SerialNumber=43b38f19 |
| C: #Ifs=10 Cfg#= 1 Atr=e0 MxPwr=500mA |
| I: If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether |
| E: Ad=82(I) Atr=03(Int.) MxPS= 16 Ivl=32ms |
| I: If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether |
| E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option |
| E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=84(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=86(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=88(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option |
| E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8a(I) Atr=03(Int.) MxPS= 10 Ivl=32ms |
| I: If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option |
| E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8b(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 7 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=80 Driver=(none) |
| E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 8 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=70 Driver=(none) |
| E: Ad=8d(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| I: If#= 9 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs |
| E: Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| E: Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
| |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> |
| Reviewed-by: Daniele Palmas <dnlplm@gmail.com> |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/usb/serial/option.c | 16 ++++++++++++++++ |
| 1 file changed, 16 insertions(+) |
| |
| --- a/drivers/usb/serial/option.c |
| +++ b/drivers/usb/serial/option.c |
| @@ -1406,6 +1406,22 @@ static const struct usb_device_id option |
| .driver_info = RSVD(0) | NCTRL(3) }, |
| { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10c8, 0xff), /* Telit FE910C04 (rmnet) */ |
| .driver_info = RSVD(0) | NCTRL(2) | RSVD(3) | RSVD(4) }, |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d0, 0x60) }, /* Telit FN990B (rmnet) */ |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d0, 0x40) }, |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d0, 0x30), |
| + .driver_info = NCTRL(5) }, |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d1, 0x60) }, /* Telit FN990B (MBIM) */ |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d1, 0x40) }, |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d1, 0x30), |
| + .driver_info = NCTRL(6) }, |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d2, 0x60) }, /* Telit FN990B (RNDIS) */ |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d2, 0x40) }, |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d2, 0x30), |
| + .driver_info = NCTRL(6) }, |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d3, 0x60) }, /* Telit FN990B (ECM) */ |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d3, 0x40) }, |
| + { USB_DEVICE_INTERFACE_PROTOCOL(TELIT_VENDOR_ID, 0x10d3, 0x30), |
| + .driver_info = NCTRL(6) }, |
| { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910), |
| .driver_info = NCTRL(0) | RSVD(1) | RSVD(3) }, |
| { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM), |