* [PATCH 1/3] USB: serial: option: Add generic MDM9207 configurations
2022-12-25 20:52 Add some USB hotspot IDs Matthew Garrett
@ 2022-12-25 20:52 ` Matthew Garrett
2022-12-26 1:23 ` Lars Melin
2022-12-25 20:52 ` [PATCH 2/3] net: usb: qmi_wwan: Add generic MDM9207 configuration Matthew Garrett
2022-12-25 20:52 ` [PATCH 3/3] USB: serial: option: Add Novatel MiFi 8800L diag endpoint Matthew Garrett
2 siblings, 1 reply; 8+ messages in thread
From: Matthew Garrett @ 2022-12-25 20:52 UTC (permalink / raw)
To: johan, bjorn; +Cc: netdev, linux-usb, Matthew Garrett, Matthew Garrett
The Orbic Speed RC400L presents as a generic MDM9207 device that supports
multiple configurations. Add support for the two that expose a set of serial
ports.
Signed-off-by: Matthew Garrett <mgarrett@aurora.tech>
---
drivers/usb/serial/option.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index dee79c7d82d5..edbb6054de91 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -1119,6 +1119,12 @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
.driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
+ /* Qualcomm MDM9207 - 0: DIAG, 2: AT, 3: NMEA */
+ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0xf601),
+ .driver_info = RSVD(1) | RSVD(4) | RSVD(5) },
+ /* Qualcomm MDM9207 - 2: DIAG, 4: AT, 5: NMEA */
+ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0xf622),
+ .driver_info = RSVD(0) | RSVD(1) | RSVD(3) | RSVD(6) },
/* Quectel products using Qualcomm vendor ID */
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
--
2.38.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH 1/3] USB: serial: option: Add generic MDM9207 configurations
2022-12-25 20:52 ` [PATCH 1/3] USB: serial: option: Add generic MDM9207 configurations Matthew Garrett
@ 2022-12-26 1:23 ` Lars Melin
2022-12-26 2:08 ` Matthew Garrett
0 siblings, 1 reply; 8+ messages in thread
From: Lars Melin @ 2022-12-26 1:23 UTC (permalink / raw)
To: Matthew Garrett, johan, bjorn; +Cc: netdev, linux-usb, Matthew Garrett
On 12/26/2022 03:52, Matthew Garrett wrote:
> + /* Qualcomm MDM9207 - 0: DIAG, 2: AT, 3: NMEA */
> + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0xf601),
> + .driver_info = RSVD(1) | RSVD(4) | RSVD(5) },
> + /* Qualcomm MDM9207 - 2: DIAG, 4: AT, 5: NMEA */
> + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0xf622),
> + .driver_info = RSVD(0) | RSVD(1) | RSVD(3) | RSVD(6) },
Please tell what the reserved interfaces are used for and why they
should be blacklisted.
The generic Qualcomm driver for 05c6:f601 (which is used by at least one
other brand/reseller) specifies that interface#1 is for USB Modem (ppp
dial-up).
I assume that you posses this dongle since you add support for it so you
can easily verify that function which I assume has not been disabled in
your version.
thanks
Lars
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 1/3] USB: serial: option: Add generic MDM9207 configurations
2022-12-26 1:23 ` Lars Melin
@ 2022-12-26 2:08 ` Matthew Garrett
2022-12-26 2:43 ` Matthew Garrett
0 siblings, 1 reply; 8+ messages in thread
From: Matthew Garrett @ 2022-12-26 2:08 UTC (permalink / raw)
To: Lars Melin; +Cc: johan, bjorn, netdev, linux-usb, Matthew Garrett
On Mon, Dec 26, 2022 at 08:23:34AM +0700, Lars Melin wrote:
> On 12/26/2022 03:52, Matthew Garrett wrote:
> > + /* Qualcomm MDM9207 - 0: DIAG, 2: AT, 3: NMEA */
> > + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0xf601),
> > + .driver_info = RSVD(1) | RSVD(4) | RSVD(5) },
> > + /* Qualcomm MDM9207 - 2: DIAG, 4: AT, 5: NMEA */
> > + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0xf622),
> > + .driver_info = RSVD(0) | RSVD(1) | RSVD(3) | RSVD(6) },
>
> Please tell what the reserved interfaces are used for and why they should be
> blacklisted.
Based on the shipped Windows Qualcomm drivers I have here, for F601
interface 1 is bound by the qcmdm driver, interface 5 is bound by a QMI
rmnet, and interfaces 0, 2 and 3 are bound by qcser. That leaves
interface 4 for adb. For F622, 0 and 1 are RNDIS, 3 is the qcmdm
interface, 2, 4 and 5 are serial, and 6 is adb. I'm not sure what qcmdm
does. What format would you like this info in?
> The generic Qualcomm driver for 05c6:f601 (which is used by at least one
> other brand/reseller) specifies that interface#1 is for USB Modem (ppp
> dial-up).
Do you have a pointer to that driver? That seems consistent with the
Windows drivers, but I have no experience with that.
> I assume that you posses this dongle since you add support for it so you can
> easily verify that function which I assume has not been disabled in your
> version.
Yup, I can check that once I know what it's supposed to be speaking :)
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 1/3] USB: serial: option: Add generic MDM9207 configurations
2022-12-26 2:08 ` Matthew Garrett
@ 2022-12-26 2:43 ` Matthew Garrett
2022-12-26 5:38 ` Lars Melin
0 siblings, 1 reply; 8+ messages in thread
From: Matthew Garrett @ 2022-12-26 2:43 UTC (permalink / raw)
To: Lars Melin; +Cc: johan, bjorn, netdev, linux-usb, Matthew Garrett
On Mon, Dec 26, 2022 at 02:08:23AM +0000, Matthew Garrett wrote:
> Do you have a pointer to that driver? That seems consistent with the
> Windows drivers, but I have no experience with that.
Ah, it looks like the qcmdm driver is actually just an alias for the
serial interface, so including that here seems reasonable. I've only
included devices I can verify, but if you like I can just turn the whole
.inf data into IDs here?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] USB: serial: option: Add generic MDM9207 configurations
2022-12-26 2:43 ` Matthew Garrett
@ 2022-12-26 5:38 ` Lars Melin
0 siblings, 0 replies; 8+ messages in thread
From: Lars Melin @ 2022-12-26 5:38 UTC (permalink / raw)
To: Matthew Garrett; +Cc: johan, bjorn, netdev, linux-usb, Matthew Garrett
On 12/26/2022 09:43, Matthew Garrett wrote:
> On Mon, Dec 26, 2022 at 02:08:23AM +0000, Matthew Garrett wrote:
>
> Ah, it looks like the qcmdm driver is actually just an alias for the
> serial interface, so including that here seems reasonable. I've only
> included devices I can verify, but if you like I can just turn the whole
> .inf data into IDs here?
Yes the WIN qcmdm driver is a serial driver but with dial-up support, in
linux we use the option driver and ModemManager will handle the dial-up.
So for your v2 of the patch you only need to remove the blacklisting of
interfaces #1 and #3 respectively and all should be good.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/3] net: usb: qmi_wwan: Add generic MDM9207 configuration
2022-12-25 20:52 Add some USB hotspot IDs Matthew Garrett
2022-12-25 20:52 ` [PATCH 1/3] USB: serial: option: Add generic MDM9207 configurations Matthew Garrett
@ 2022-12-25 20:52 ` Matthew Garrett
2022-12-25 20:52 ` [PATCH 3/3] USB: serial: option: Add Novatel MiFi 8800L diag endpoint Matthew Garrett
2 siblings, 0 replies; 8+ messages in thread
From: Matthew Garrett @ 2022-12-25 20:52 UTC (permalink / raw)
To: johan, bjorn; +Cc: netdev, linux-usb, Matthew Garrett, Matthew Garrett
The Orbic Speed RC400L presents as a generic MDM9207 device that supports
multiple configurations with different USB IDs. One exposes a QMI interface.
Add the ID for that.
Signed-off-by: Matthew Garrett <mgarrett@aurora.tech>
---
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 a808d718c012..bf05b7feacc0 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -1223,6 +1223,7 @@ static const struct usb_device_id products[] = {
{QMI_FIXED_INTF(0x05c6, 0x90b2, 3)}, /* ublox R410M */
{QMI_FIXED_INTF(0x05c6, 0x920d, 0)},
{QMI_FIXED_INTF(0x05c6, 0x920d, 5)},
+ {QMI_FIXED_INTF(0x05c6, 0xf601, 5)},
{QMI_QUIRK_SET_DTR(0x05c6, 0x9625, 4)}, /* YUGA CLM920-NC5 */
{QMI_FIXED_INTF(0x0846, 0x68a2, 8)},
{QMI_FIXED_INTF(0x0846, 0x68d3, 8)}, /* Netgear Aircard 779S */
--
2.38.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 3/3] USB: serial: option: Add Novatel MiFi 8800L diag endpoint
2022-12-25 20:52 Add some USB hotspot IDs Matthew Garrett
2022-12-25 20:52 ` [PATCH 1/3] USB: serial: option: Add generic MDM9207 configurations Matthew Garrett
2022-12-25 20:52 ` [PATCH 2/3] net: usb: qmi_wwan: Add generic MDM9207 configuration Matthew Garrett
@ 2022-12-25 20:52 ` Matthew Garrett
2 siblings, 0 replies; 8+ messages in thread
From: Matthew Garrett @ 2022-12-25 20:52 UTC (permalink / raw)
To: johan, bjorn; +Cc: netdev, linux-usb, Matthew Garrett
The Novatel MiFi 8800L can be configured into exposing additional
endpoints by sending four bytes of 0s to the HID endpoint it exposes by
default. One of the additional exposed endpoints is a Qualcomm DIAG protocol
interface. Add the information for that in order to allow it to be used.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
---
drivers/usb/serial/option.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index edbb6054de91..17ea4e48afb7 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -161,6 +161,7 @@ static void option_instat_callback(struct urb *urb);
#define NOVATELWIRELESS_PRODUCT_U620L 0x9022
#define NOVATELWIRELESS_PRODUCT_G2 0xA010
#define NOVATELWIRELESS_PRODUCT_MC551 0xB001
+#define NOVATELWIRELESS_PRODUCT_8800L 0xB023
#define UBLOX_VENDOR_ID 0x1546
@@ -1055,6 +1056,7 @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E362, 0xff, 0xff, 0xff) },
{ USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E371, 0xff, 0xff, 0xff) },
{ USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U620L, 0xff, 0x00, 0x00) },
+ { USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_8800L, 0xff, 0xff, 0xff) },
{ USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01) },
{ USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01A) },
--
2.38.1
^ permalink raw reply related [flat|nested] 8+ messages in thread