From: Johan Hovold <johan@kernel.org>
To: Chukun Pan <amadeus@jmu.edu.cn>
Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
Subject: Re: [PATCH v2 1/1] USB: serial: option: add GosunCn GM800 series
Date: Wed, 9 Jul 2025 11:28:09 +0200 [thread overview]
Message-ID: <aG42KblIHdoCxddQ@hovoldconsulting.com> (raw)
In-Reply-To: <20250701100002.798372-2-amadeus@jmu.edu.cn>
On Tue, Jul 01, 2025 at 06:00:02PM +0800, Chukun Pan wrote:
> Add support for GosunCn GM800 series which are based on Qualcomm
> SDX55 chip. The ID of MBIM/ECM/RNDIS mode is the same as GM500.
>
> Download mode:
> 0x1402: DIAG + AT + MODEM
> T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
> P: Vendor=305a ProdID=1402 Rev= 4.14
> S: Manufacturer=GSW
> S: Product=GSW_GM800_123456
> S: SerialNumber=12345678
> C:* #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA
> I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
This line no longer reflects what the kernel binds to after you made the
matching more specific in v2.
But why not bind to the DIAG port here and in the other compositions?
> RmNet mode (old):
What do you mean by "old" here?
> 0x1403: DIAG + AT + MODEM + RMNET + ADB
> RNDIS mode:
> 0x1404: DIAG + AT + MODEM + RNDIS + ADB
> T: Bus=08 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=5000 MxCh= 0
> D: Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
> P: Vendor=305a ProdID=1404 Rev= 4.14
> S: Manufacturer=QCOM
> S: Product=SDXPRAIRIE-MTP _SN:12345678
> S: SerialNumber=12345678
> C:* #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
> A: FirstIf#= 0 IfCount= 2 Cls=ef(misc ) Sub=04 Prot=01
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=04 Prot=01 Driver=rndis_host
> E: Ad=81(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=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E: Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
> E: Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E: Ad=84(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
> E: Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
> E: Ad=86(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
> E: Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
> E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E: Ad=87(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
This is one of the PIDs shared with GM500 and which, since your v2, will
no longer bind to the ff/ff/ff interface that it has.
Is that intentional or a bug in v2? Either way, this needs to be
addressed in some way (e.g. explained in the commit message).
> @@ -2382,9 +2382,13 @@ static const struct usb_device_id option_ids[] = {
> { USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d22, 0xff, 0xff, 0x40) }, /* MeiG Smart SRM825L */
> { USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d22, 0xff, 0xff, 0x60) }, /* MeiG Smart SRM825L */
> { 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 */
> - { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1406, 0xff) }, /* GosunCn GM500 ECM/NCM */
> + { USB_DEVICE_AND_INTERFACE_INFO(0x305a, 0x1402, 0xff, 0, 0) }, /* GosunCn GM800 (Download) */
> + { USB_DEVICE_AND_INTERFACE_INFO(0x305a, 0x1403, 0xff, 0, 0) }, /* GosunCn GM800 (RMNET, old) */
> + { USB_DEVICE_AND_INTERFACE_INFO(0x305a, 0x1404, 0xff, 0, 0) }, /* GosunCn GM500/GM800 RNDIS */
> + { USB_DEVICE_AND_INTERFACE_INFO(0x305a, 0x1405, 0xff, 0, 0) }, /* GosunCn GM500/GM800 MBIM */
> + { USB_DEVICE_AND_INTERFACE_INFO(0x305a, 0x1406, 0xff, 0, 0) }, /* GosunCn GM500/GM800 ECM */
According to commit 08d4ef5cc920 ("USB: serial: option: add GosunCn
GM500 series") all of these have an ff/ff/ff interface on GM500 which
will no longer be bound after this change.
> + { USB_DEVICE_AND_INTERFACE_INFO(0x305a, 0x1421, 0xff, 0, 0) }, /* GosunCn GM800 (RMNET) */
> + { USB_DEVICE_AND_INTERFACE_INFO(0x305a, 0x1422, 0xff, 0, 0) }, /* GosunCn GM800 (EAP) */
> { USB_DEVICE(0x33f8, 0x0104), /* Rolling RW101-GL (laptop RMNET) */
> .driver_info = RSVD(4) | RSVD(5) },
> { USB_DEVICE_INTERFACE_CLASS(0x33f8, 0x01a2, 0xff) }, /* Rolling RW101-GL (laptop MBIM) */
Johan
next prev parent reply other threads:[~2025-07-09 9:28 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-01 10:00 [PATCH v2 0/1] " Chukun Pan
2025-07-01 10:00 ` [PATCH v2 1/1] " Chukun Pan
2025-07-09 9:28 ` Johan Hovold [this message]
2025-07-09 9:10 ` [PATCH v2 0/1] " Johan Hovold
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aG42KblIHdoCxddQ@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=amadeus@jmu.edu.cn \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®