* [PATCH] USB: add Compal EXM-G1x modem support
@ 2026-08-28 7:56 Ian Lin
2026-08-28 8:05 ` Johan Hovold
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Ian Lin @ 2026-08-28 7:56 UTC (permalink / raw)
To: bjorn, johan, gregkh
Cc: andrew+netdev, davem, edumazet, kuba, pabeni, netdev, linux-usb,
linux-kernel, Ian Lin
Add the USB device ID for the Compal EXM-G1x modem.
Bind its QMI WWAN interface 8 and expose its vendor-specific serial
interfaces with protocols 0x30, 0x40, and 0x60 through the option driver.
Tested on a Compal EXM-G1x modem.
Signed-off-by: Ian Lin <jisayme@gmail.com>
---
drivers/net/usb/qmi_wwan.c | 1 +
drivers/usb/serial/option.c | 3 +++
2 files changed, 4 insertions(+)
diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index 8178a8758..e17afb22c 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -1451,6 +1451,7 @@ static const struct usb_device_id products[] = {
{QMI_FIXED_INTF(0x2692, 0x9025, 4)}, /* Cellient MPL200 (rebranded Qualcomm 05c6:9025) */
{QMI_QUIRK_SET_DTR(0x1546, 0x1312, 4)}, /* u-blox LARA-R6 01B */
{QMI_QUIRK_SET_DTR(0x1546, 0x1342, 4)}, /* u-blox LARA-L6 */
+ {QMI_QUIRK_SET_DTR(0x04b7, 0x8217, 8)},
{QMI_QUIRK_SET_DTR(0x33f8, 0x0104, 4)}, /* Rolling RW101 RMNET */
{QMI_FIXED_INTF(0x2dee, 0x4d22, 5)}, /* MeiG Smart SRM825L */
{QMI_QUIRK_SET_DTR(0x2dee, 0x4d63, 0)}, /* MeiG SRM813Q w/ Modem(PPP) */
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index e4ad14375..56b43bf1f 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -2547,6 +2547,9 @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE_INTERFACE_CLASS(0x1bbb, 0x0640, 0xff), /* TCL IK512 ECM */
.driver_info = NCTRL(3) },
{ USB_DEVICE_INTERFACE_CLASS(0x2949, 0x8700, 0xff) }, /* Neoway N723-EA */
+ { USB_DEVICE_AND_INTERFACE_INFO(0x04b7, 0x8217, 0xff, 0xff, 0x30) },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x04b7, 0x8217, 0xff, 0xff, 0x40) },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x04b7, 0x8217, 0xff, 0xff, 0x60) },
{ } /* Terminating entry */
};
MODULE_DEVICE_TABLE(usb, option_ids);
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] USB: add Compal EXM-G1x modem support
2026-08-28 7:56 [PATCH] USB: add Compal EXM-G1x modem support Ian Lin
@ 2026-08-28 8:05 ` Johan Hovold
2026-08-28 8:23 ` [PATCH v2] net: usb: qmi_wwan: add Compal EXM-G1x support Ian Lin
2026-08-28 8:26 ` [PATCH v2] USB: serial: option: " Ian Lin
2 siblings, 0 replies; 4+ messages in thread
From: Johan Hovold @ 2026-08-28 8:05 UTC (permalink / raw)
To: Ian Lin
Cc: bjorn, gregkh, andrew+netdev, davem, edumazet, kuba, pabeni,
netdev, linux-usb, linux-kernel
On Fri, Aug 28, 2026 at 03:56:44PM +0800, Ian Lin wrote:
> Add the USB device ID for the Compal EXM-G1x modem.
>
> Bind its QMI WWAN interface 8 and expose its vendor-specific serial
> interfaces with protocols 0x30, 0x40, and 0x60 through the option driver.
>
> Tested on a Compal EXM-G1x modem.
Do you know which chipset this is based on?
> Signed-off-by: Ian Lin <jisayme@gmail.com>
> ---
> drivers/net/usb/qmi_wwan.c | 1 +
> drivers/usb/serial/option.c | 3 +++
Please split this in two patches as this will go in through two
different subsystems.
Please also include the output of usb-devices (or lsusb -v) in the
commit message (at least for usb serial).
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
> index 8178a8758..e17afb22c 100644
> --- a/drivers/net/usb/qmi_wwan.c
> +++ b/drivers/net/usb/qmi_wwan.c
> @@ -1451,6 +1451,7 @@ static const struct usb_device_id products[] = {
> {QMI_FIXED_INTF(0x2692, 0x9025, 4)}, /* Cellient MPL200 (rebranded Qualcomm 05c6:9025) */
> {QMI_QUIRK_SET_DTR(0x1546, 0x1312, 4)}, /* u-blox LARA-R6 01B */
> {QMI_QUIRK_SET_DTR(0x1546, 0x1342, 4)}, /* u-blox LARA-L6 */
> + {QMI_QUIRK_SET_DTR(0x04b7, 0x8217, 8)},
> {QMI_QUIRK_SET_DTR(0x33f8, 0x0104, 4)}, /* Rolling RW101 RMNET */
> {QMI_FIXED_INTF(0x2dee, 0x4d22, 5)}, /* MeiG Smart SRM825L */
> {QMI_QUIRK_SET_DTR(0x2dee, 0x4d63, 0)}, /* MeiG SRM813Q w/ Modem(PPP) */
> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
> index e4ad14375..56b43bf1f 100644
> --- a/drivers/usb/serial/option.c
> +++ b/drivers/usb/serial/option.c
> @@ -2547,6 +2547,9 @@ static const struct usb_device_id option_ids[] = {
> { USB_DEVICE_INTERFACE_CLASS(0x1bbb, 0x0640, 0xff), /* TCL IK512 ECM */
> .driver_info = NCTRL(3) },
> { USB_DEVICE_INTERFACE_CLASS(0x2949, 0x8700, 0xff) }, /* Neoway N723-EA */
> + { USB_DEVICE_AND_INTERFACE_INFO(0x04b7, 0x8217, 0xff, 0xff, 0x30) },
> + { USB_DEVICE_AND_INTERFACE_INFO(0x04b7, 0x8217, 0xff, 0xff, 0x40) },
> + { USB_DEVICE_AND_INTERFACE_INFO(0x04b7, 0x8217, 0xff, 0xff, 0x60) },
Try to keep the entries sorted by VID/PID and add a comment with the
product name after the first new entry.
> { } /* Terminating entry */
> };
> MODULE_DEVICE_TABLE(usb, option_ids);
Johan
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v2] net: usb: qmi_wwan: add Compal EXM-G1x support
2026-08-28 7:56 [PATCH] USB: add Compal EXM-G1x modem support Ian Lin
2026-08-28 8:05 ` Johan Hovold
@ 2026-08-28 8:23 ` Ian Lin
2026-08-28 8:26 ` [PATCH v2] USB: serial: option: " Ian Lin
2 siblings, 0 replies; 4+ messages in thread
From: Ian Lin @ 2026-08-28 8:23 UTC (permalink / raw)
To: bjorn
Cc: johan, andrew+netdev, davem, edumazet, kuba, pabeni, netdev,
linux-usb, linux-kernel, Ian Lin
The Compal EXM-G1x is a Qualcomm SDX12-based LTE modem. Add support for
its QMI WWAN interface 8 using the DTR quirk.
Tested on a Compal EXM-G1x modem.
Signed-off-by: Ian Lin <jisayme@gmail.com>
---
Changes in v2:
- Split the QMI WWAN change into a standalone patch.
- Document the Qualcomm SDX12 chipset.
- Improve VID/PID ordering and add a product-name comment.
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 8178a8758..fdfdcf24d 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -1446,6 +1446,7 @@ static const struct usb_device_id products[] = {
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0316, 3)}, /* Quectel RG255C */
{QMI_QUIRK_SET_DTR(0x2cb7, 0x0104, 4)}, /* Fibocom NL678 series */
{QMI_QUIRK_SET_DTR(0x2cb7, 0x0112, 0)}, /* Fibocom FG132 */
+ {QMI_QUIRK_SET_DTR(0x04b7, 0x8217, 8)}, /* Compal EXM-G1x */
{QMI_FIXED_INTF(0x0489, 0xe0b4, 0)}, /* Foxconn T77W968 LTE */
{QMI_FIXED_INTF(0x0489, 0xe0b5, 0)}, /* Foxconn T77W968 LTE with eSIM support*/
{QMI_FIXED_INTF(0x2692, 0x9025, 4)}, /* Cellient MPL200 (rebranded Qualcomm 05c6:9025) */
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH v2] USB: serial: option: add Compal EXM-G1x support
2026-08-28 7:56 [PATCH] USB: add Compal EXM-G1x modem support Ian Lin
2026-08-28 8:05 ` Johan Hovold
2026-08-28 8:23 ` [PATCH v2] net: usb: qmi_wwan: add Compal EXM-G1x support Ian Lin
@ 2026-08-28 8:26 ` Ian Lin
2 siblings, 0 replies; 4+ messages in thread
From: Ian Lin @ 2026-08-28 8:26 UTC (permalink / raw)
To: johan, gregkh; +Cc: linux-usb, linux-kernel, Ian Lin
The Compal EXM-G1x is a Qualcomm SDX12-based LTE modem. Add support for
its vendor-specific serial interfaces with protocols 0x30, 0x40, and
0x60.
Relevant output from usb-devices:
T: Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 4 Spd=5000 MxCh= 0
D: Ver= 3.20 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
P: Vendor=04b7 ProdID=8217 Rev=05.04
S: Manufacturer=COMPAL
S: Product=EXM-G1x
C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option
I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
I: If#= 4 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 8 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan
Tested on a Compal EXM-G1x modem.
Signed-off-by: Ian Lin <jisayme@gmail.com>
---
Changes in v2:
- Split the USB serial change into a standalone patch.
- Document the Qualcomm SDX12 chipset and include usb-devices output.
- Sort the VID/PID entries and add a product-name comment.
drivers/usb/serial/option.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index e4ad14375..e4d9f2e70 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -2542,6 +2542,9 @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, TOZED_PRODUCT_LT70C, 0xff, 0, 0) },
{ USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, UNISOC_PRODUCT_UIS7720, 0xff, 0, 0) },
{ USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, LUAT_PRODUCT_AIR720U, 0xff, 0, 0) },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x04b7, 0x8217, 0xff, 0xff, 0x30) }, /* Compal EXM-G1x */
+ { USB_DEVICE_AND_INTERFACE_INFO(0x04b7, 0x8217, 0xff, 0xff, 0x40) },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x04b7, 0x8217, 0xff, 0xff, 0x60) },
{ USB_DEVICE_INTERFACE_CLASS(0x1bbb, 0x0530, 0xff), /* TCL IK512 MBIM */
.driver_info = NCTRL(1) },
{ USB_DEVICE_INTERFACE_CLASS(0x1bbb, 0x0640, 0xff), /* TCL IK512 ECM */
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-08-28 8:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-28 7:56 [PATCH] USB: add Compal EXM-G1x modem support Ian Lin
2026-08-28 8:05 ` Johan Hovold
2026-08-28 8:23 ` [PATCH v2] net: usb: qmi_wwan: add Compal EXM-G1x support Ian Lin
2026-08-28 8:26 ` [PATCH v2] USB: serial: option: " Ian Lin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox