Message ID | 20221225205224.270787-2-mjg59@srcf.ucam.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/3] USB: serial: option: Add generic MDM9207 configurations | expand |
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
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 :)
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?
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.
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),
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(+)