[PATCH v2] net: usb: qmi_wwan: add Telit Cinterion FE990D50 composition

Fabio Porcedda posted 1 patch 1 month, 2 weeks ago
There is a newer version of this series
drivers/net/usb/qmi_wwan.c | 1 +
1 file changed, 1 insertion(+)
[PATCH v2] net: usb: qmi_wwan: add Telit Cinterion FE990D50 composition
Posted by Fabio Porcedda 1 month, 2 weeks ago
Add the followin Telit Cinterion FE990D50 composition:

0x0991: rmnet + tty (AT/NMEA) + tty (AT) + tty (AT) + tty (AT) +
        tty (diag) + ADPL + adb
T:  Bus=01 Lev=01 Prnt=01 Port=06 Cnt=03 Dev#= 10 Spd=480  MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1bc7 ProdID=0991 Rev=06.06
S:  Manufacturer=Telit Cinterion
S:  Product=FE990
S:  SerialNumber=2aa802d2
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=(none)
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>
---
Changes:
v2: 
- Add stable@vger.kernel.org
v1:
- https://lore.kernel.org/netdev/20260810102840.125473-1-fabio.porcedda@gmail.com/


 drivers/net/usb/qmi_wwan.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index 94cdb61dca83..147beaa61340 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -1360,6 +1360,7 @@ static const struct usb_device_id products[] = {
 	{QMI_FIXED_INTF(0x1bbb, 0x0203, 2)},	/* Alcatel L800MA */
 	{QMI_FIXED_INTF(0x2357, 0x0201, 4)},	/* TP-LINK HSUPA Modem MA180 */
 	{QMI_FIXED_INTF(0x2357, 0x9000, 4)},	/* TP-LINK MA260 */
+	{QMI_QUIRK_SET_DTR(0x1bc7, 0x0991, 0)}, /* Telit LE910C1-EUX */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1031, 3)}, /* Telit LE910C1-EUX */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1034, 2)}, /* Telit LE910C4-WWX */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1037, 4)}, /* Telit LE910C4-WWX */
-- 
2.55.0
Re: [PATCH v2] net: usb: qmi_wwan: add Telit Cinterion FE990D50 composition
Posted by Jakub Kicinski 1 month, 2 weeks ago
This is an AI-generated review of your patch. The human sending this
email has considered the AI review valid, or at least plausible.
---
net: usb: qmi_wwan: add Telit Cinterion FE990D50 composition

Adds a qmi_wwan products[] entry for USB ID 1bc7:0991 interface 0, using
the SET_DTR quirk, for the Telit Cinterion FE990D50 rmnet + tty + ADPL +
adb composition.

> diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
> index 94cdb61dca83d..147beaa61340d 100644
> --- a/drivers/net/usb/qmi_wwan.c
> +++ b/drivers/net/usb/qmi_wwan.c
> @@ -1360,6 +1360,7 @@ static const struct usb_device_id products[] = {
>  	{QMI_FIXED_INTF(0x1bbb, 0x0203, 2)},	/* Alcatel L800MA */
>  	{QMI_FIXED_INTF(0x2357, 0x0201, 4)},	/* TP-LINK HSUPA Modem MA180 */
>  	{QMI_FIXED_INTF(0x2357, 0x9000, 4)},	/* TP-LINK MA260 */
> +	{QMI_QUIRK_SET_DTR(0x1bc7, 0x0991, 0)}, /* Telit LE910C1-EUX */
                                                   ^^^^^^^^^^^^^^^^^^

[Severity: Low]
Is the device name in this comment the intended one?  The subject line and
the descriptor dump in the changelog both describe 1bc7:0991 as the
FE990D50:

    P:  Vendor=1bc7 ProdID=0991 Rev=06.06
    S:  Manufacturer=Telit Cinterion
    S:  Product=FE990

The comment looks like a copy of the next line, which is the entry for the
real LE910C1-EUX at a different product ID and interface number:

>  	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1031, 3)}, /* Telit LE910C1-EUX */

drivers/usb/serial/option.c already labels the same product ID as the
FE990D50 in option_ids[]:

	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x0991, 0xff, 0xff, 0x30),	/* Telit FE990D50 (rmnet) */

Would /* Telit FE990D50 */ be a better fit here, matching the existing
naming for the rest of the family in this table (/* Telit FE990A */ for
0x1080 and /* Telit FE990B */ for 0x10b0)?  As it stands, two entries for
different hardware carry the same label, which makes it easy for a later
addition to touch the wrong line.

The match itself looks fine: interface 0 of 0x0991 has bInterfaceProtocol
0x50, which none of the option.c filters (0x30, 0x40, 0x60) claim, so only
the comment appears to need a change.

>  	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1034, 2)}, /* Telit LE910C4-WWX */
>  	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1037, 4)}, /* Telit LE910C4-WWX */
-- 
pw-bot: cr
Re: [PATCH v2] net: usb: qmi_wwan: add Telit Cinterion FE990D50 composition
Posted by Breno Leitao 1 month, 2 weeks ago
On Mon, Aug 10, 2026 at 12:34:09PM +0200, Fabio Porcedda wrote:
> Add the followin Telit Cinterion FE990D50 composition:
> 
> 0x0991: rmnet + tty (AT/NMEA) + tty (AT) + tty (AT) + tty (AT) +
>         tty (diag) + ADPL + adb
> T:  Bus=01 Lev=01 Prnt=01 Port=06 Cnt=03 Dev#= 10 Spd=480  MxCh= 0
> D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
> P:  Vendor=1bc7 ProdID=0991 Rev=06.06
> S:  Manufacturer=Telit Cinterion
> S:  Product=FE990
> S:  SerialNumber=2aa802d2
> 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=(none)
> 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>
> ---
> Changes:
> v2: 
> - Add stable@vger.kernel.org

Why CCing stable?
Re: [PATCH v2] net: usb: qmi_wwan: add Telit Cinterion FE990D50 composition
Posted by Jakub Kicinski 1 month, 2 weeks ago
On Mon, 10 Aug 2026 06:07:04 -0700 Breno Leitao wrote:
> > Changes:
> > v2: 
> > - Add stable@vger.kernel.org  
> 
> Why CCing stable?

FWIW now since you haven't acked the patch but asked question the patch
is going to be held in "active discussion" state and delayed so please
provide a tag.. FWIW2 we discourage reviewers (iow non-maintainers) from
asking these sort of process questions FWIW. Majority of the time the
submitter knows better than the reviewer.
Re: [PATCH v2] net: usb: qmi_wwan: add Telit Cinterion FE990D50 composition
Posted by Breno Leitao 1 month, 2 weeks ago
On Mon, Aug 10, 2026 at 11:39:31AM -0700, Jakub Kicinski wrote:
> On Mon, 10 Aug 2026 06:07:04 -0700 Breno Leitao wrote:
> > > Changes:
> > > v2: 
> > > - Add stable@vger.kernel.org  
> > 
> > Why CCing stable?
> 
> FWIW now since you haven't acked the patch but asked question the patch
> is going to be held in "active discussion" state and delayed so please
> provide a tag.. FWIW2 we discourage reviewers (iow non-maintainers) from
> asking these sort of process questions FWIW. Majority of the time the
> submitter knows better than the reviewer.

Ack, sorry for the noise.

Reviewed-by: Breno Leitao <leitao@debian.org>
Re: [PATCH v2] net: usb: qmi_wwan: add Telit Cinterion FE990D50 composition
Posted by Fabio Porcedda 1 month, 2 weeks ago
On Mon, Aug 10, 2026 at 3:07 PM Breno Leitao <leitao@debian.org> wrote:
>
> On Mon, Aug 10, 2026 at 12:34:09PM +0200, Fabio Porcedda wrote:
> > Add the followin Telit Cinterion FE990D50 composition:
> >
> > 0x0991: rmnet + tty (AT/NMEA) + tty (AT) + tty (AT) + tty (AT) +
> >         tty (diag) + ADPL + adb
> > T:  Bus=01 Lev=01 Prnt=01 Port=06 Cnt=03 Dev#= 10 Spd=480  MxCh= 0
> > D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
> > P:  Vendor=1bc7 ProdID=0991 Rev=06.06
> > S:  Manufacturer=Telit Cinterion
> > S:  Product=FE990
> > S:  SerialNumber=2aa802d2
> > 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=(none)
> > 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>
> > ---
> > Changes:
> > v2:
> > - Add stable@vger.kernel.org
>
> Why CCing stable?

I've added it so it can be cherry-picked into the stable and long-term releases.
It should be legit for adding a device ID.

BR
-- 
Fabio Porcedda