diff mbox series

[v2,1/2] net: usb: qmi_wwan: support ZTE P685M modem

Message ID 20210205173904.13916-2-lech.perczak@gmail.com (mailing list archive)
State Deferred
Delegated to: Netdev Maintainers
Headers show
Series usb: add full support for ZTE P685M modem | expand

Checks

Context Check Description
netdev/cover_letter success Link
netdev/fixes_present success Link
netdev/patch_count success Link
netdev/tree_selection success Guessed tree name to be net-next
netdev/subject_prefix success Link
netdev/cc_maintainers warning 2 maintainers not CCed: davem@davemloft.net kuba@kernel.org
netdev/source_inline success Was 0 now: 0
netdev/verify_signedoff success Link
netdev/module_param success Was 0 now: 0
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/verify_fixes success Link
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 7 lines checked
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/header_inline success Link
netdev/stable success Stable not CCed

Commit Message

Lech Perczak Feb. 5, 2021, 5:39 p.m. UTC
The modem is used inside ZTE MF283+ router and carriers identify it as
such.
Interface mapping is:
0: QCDM, 1: AT (PCUI), 2: AT (Modem), 3: QMI, 4: ADB

T:  Bus=02 Lev=02 Prnt=02 Port=05 Cnt=01 Dev#=  3 Spd=480  MxCh= 0
D:  Ver= 2.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=19d2 ProdID=1275 Rev=f0.00
S:  Manufacturer=ZTE,Incorporated
S:  Product=ZTE Technologies MSM
S:  SerialNumber=P685M510ZTED0000CP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&0
C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
E:  Ad=87(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Cc: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
---
v2: no changes to this patch, resend as series.

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

Comments

Bjørn Mork Feb. 6, 2021, 2:19 p.m. UTC | #1
Lech Perczak <lech.perczak@gmail.com> writes:

> The modem is used inside ZTE MF283+ router and carriers identify it as
> such.
> Interface mapping is:
> 0: QCDM, 1: AT (PCUI), 2: AT (Modem), 3: QMI, 4: ADB
>
> T:  Bus=02 Lev=02 Prnt=02 Port=05 Cnt=01 Dev#=  3 Spd=480  MxCh= 0
> D:  Ver= 2.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
> P:  Vendor=19d2 ProdID=1275 Rev=f0.00
> S:  Manufacturer=ZTE,Incorporated
> S:  Product=ZTE Technologies MSM
> S:  SerialNumber=P685M510ZTED0000CP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&0

This lookes weird.  But I guess that's really the string presented by
this device?

> C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
> I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
> E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
> E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
> E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
> E:  Ad=87(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
> E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
> E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
> E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>
> Cc: Bjørn Mork <bjorn@mork.no>
> Signed-off-by: Lech Perczak <lech.perczak@gmail.com>

Patch looks fine to me.  But I don't think you can submit a net and usb
serial patch in a series. These are two different subsystems.

There's no dependency between the patches so you can just submit
them as standalone patches.  I.e. no series.

Feel free to include

Acked-by: Bjørn Mork <bjorn@mork.no>
Lech Perczak Feb. 6, 2021, 2:50 p.m. UTC | #2
Hi,

W dniu 2021-02-06 o 15:19, Bjørn Mork pisze:
> Lech Perczak<lech.perczak@gmail.com>  writes:
>
>> The modem is used inside ZTE MF283+ router and carriers identify it as
>> such.
>> Interface mapping is:
>> 0: QCDM, 1: AT (PCUI), 2: AT (Modem), 3: QMI, 4: ADB
>>
>> T:  Bus=02 Lev=02 Prnt=02 Port=05 Cnt=01 Dev#=  3 Spd=480  MxCh= 0
>> D:  Ver= 2.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
>> P:  Vendor=19d2 ProdID=1275 Rev=f0.00
>> S:  Manufacturer=ZTE,Incorporated
>> S:  Product=ZTE Technologies MSM
>> S:  SerialNumber=P685M510ZTED0000CP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&0
> This lookes weird.  But I guess that's really the string presented by
> this device?
Yes indeed. Looked weird to me too, but at least it confirms the model 
name found in Windows drivers.
>> C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
>> I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
>> E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
>> E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
>> E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
>> E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
>> E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
>> E:  Ad=87(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
>> E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
>> E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>>
>> Cc: Bjørn Mork<bjorn@mork.no>
>> Signed-off-by: Lech Perczak<lech.perczak@gmail.com>
> Patch looks fine to me.  But I don't think you can submit a net and usb
> serial patch in a series. These are two different subsystems.
>
> There's no dependency between the patches so you can just submit
> them as standalone patches.  I.e. no series.
Actually, there is, and I just noticed, that patches are in wrong order.
Without patch 2/2 for 'option' driver, there is possibility for that 
driver to steal
interface 3 from qmi_wwan, as currently it will match interface 3 as 
ff/ff/ff.

With that in mind I'm not really sure how to proceed.

What comes to my mind, is either submit this as series again, with 
ordering swapped,
or submit 2/2 first, wait for it to become merged, and then submit 1/2.

> Feel free to include
>
> Acked-by: Bjørn Mork<bjorn@mork.no>

Thank you.

--
With kind regards,
Lech
Jakub Kicinski Feb. 6, 2021, 8:13 p.m. UTC | #3
On Sat, 6 Feb 2021 15:50:41 +0100 Lech Perczak wrote:
> >> Cc: Bjørn Mork<bjorn@mork.no>
> >> Signed-off-by: Lech Perczak<lech.perczak@gmail.com>  
> > Patch looks fine to me.  But I don't think you can submit a net and usb
> > serial patch in a series. These are two different subsystems.
> >
> > There's no dependency between the patches so you can just submit
> > them as standalone patches.  I.e. no series.  
> Actually, there is, and I just noticed, that patches are in wrong order.
> Without patch 2/2 for 'option' driver, there is possibility for that 
> driver to steal
> interface 3 from qmi_wwan, as currently it will match interface 3 as 
> ff/ff/ff.
> 
> With that in mind I'm not really sure how to proceed.
> 
> What comes to my mind, is either submit this as series again, with 
> ordering swapped,
> or submit 2/2 first, wait for it to become merged, and then submit 1/2.

Send patch 2, wait for it to hit net, send 1 seems like the safest
option. If we're lucky Johan can still send patch 2 for 5.11, otherwise
we'll wait until the merge window - we're at rc7 already, it won't take
too long.
Johan Hovold Feb. 8, 2021, 9:35 a.m. UTC | #4
On Sat, Feb 06, 2021 at 12:13:22PM -0800, Jakub Kicinski wrote:
> On Sat, 6 Feb 2021 15:50:41 +0100 Lech Perczak wrote:
> > >> Cc: Bjørn Mork<bjorn@mork.no>
> > >> Signed-off-by: Lech Perczak<lech.perczak@gmail.com>  
> > > Patch looks fine to me.  But I don't think you can submit a net and usb
> > > serial patch in a series. These are two different subsystems.
> > >
> > > There's no dependency between the patches so you can just submit
> > > them as standalone patches.  I.e. no series.  
> > Actually, there is, and I just noticed, that patches are in wrong order.
> > Without patch 2/2 for 'option' driver, there is possibility for that 
> > driver to steal
> > interface 3 from qmi_wwan, as currently it will match interface 3 as 
> > ff/ff/ff.
> > 
> > With that in mind I'm not really sure how to proceed.
> > 
> > What comes to my mind, is either submit this as series again, with 
> > ordering swapped,
> > or submit 2/2 first, wait for it to become merged, and then submit 1/2.
> 
> Send patch 2, wait for it to hit net, send 1 seems like the safest
> option. If we're lucky Johan can still send patch 2 for 5.11, otherwise
> we'll wait until the merge window - we're at rc7 already, it won't take
> too long.

I usually don't send on new device-ids this late in the release cycle,
so I'll queue the USB-serial one up for 5.12-rc1 and you can take this
one through net-next.

Johan
Jakub Kicinski Feb. 8, 2021, 5:52 p.m. UTC | #5
On Mon, 8 Feb 2021 10:35:24 +0100 Johan Hovold wrote:
> > Send patch 2, wait for it to hit net, send 1 seems like the safest
> > option. If we're lucky Johan can still send patch 2 for 5.11, otherwise
> > we'll wait until the merge window - we're at rc7 already, it won't take
> > too long.  
> 
> I usually don't send on new device-ids this late in the release cycle,
> so I'll queue the USB-serial one up for 5.12-rc1 and you can take this
> one through net-next.

s/net-next/net/  Sound like a plan, thanks!
Johan Hovold Feb. 9, 2021, 12:09 p.m. UTC | #6
On Mon, Feb 08, 2021 at 09:52:52AM -0800, Jakub Kicinski wrote:
> On Mon, 8 Feb 2021 10:35:24 +0100 Johan Hovold wrote:
> > > Send patch 2, wait for it to hit net, send 1 seems like the safest
> > > option. If we're lucky Johan can still send patch 2 for 5.11, otherwise
> > > we'll wait until the merge window - we're at rc7 already, it won't take
> > > too long.  
> > 
> > I usually don't send on new device-ids this late in the release cycle,
> > so I'll queue the USB-serial one up for 5.12-rc1 and you can take this
> > one through net-next.
> 
> s/net-next/net/  Sound like a plan, thanks!

I did mean net-next so that both would end up in -rc1 and allowing you
to apply it straight away, but either works. :)

While there is a dependency of sort here, it's not the end of the world
if the networking one goes in before the USB-serial one; the serial
driver might just continue to claim those ports a while longer in some
setups (depending on probe order).

Johan
diff mbox series

Patch

diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index cc4819282820..a0bf7737402f 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -1235,6 +1235,7 @@  static const struct usb_device_id products[] = {
 	{QMI_FIXED_INTF(0x19d2, 0x1255, 4)},
 	{QMI_FIXED_INTF(0x19d2, 0x1256, 4)},
 	{QMI_FIXED_INTF(0x19d2, 0x1270, 5)},	/* ZTE MF667 */
+	{QMI_FIXED_INTF(0x19d2, 0x1275, 3)},	/* ZTE P685M */
 	{QMI_FIXED_INTF(0x19d2, 0x1401, 2)},
 	{QMI_FIXED_INTF(0x19d2, 0x1402, 2)},	/* ZTE MF60 */
 	{QMI_FIXED_INTF(0x19d2, 0x1424, 2)},