2022-07-15 10:26:47

by Frans Klaver

[permalink] [raw]
Subject: [PATCH v2] usb: serial: qcserial: add EM9191 support

From: Frans Klaver <[email protected]>

Support for QDL mode is already present for EM9191 modules, but the
non-QDL mode appears to be missing. Add it now.

T: Bus=03 Lev=03 Prnt=04 Port=01 Cnt=02 Dev#= 17 Spd=480 MxCh= 0
D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1199 ProdID=90d3 Rev=00.06
S: Manufacturer=Sierra Wireless, Incorporated
S: Product=Sierra Wireless EM9191
S: SerialNumber=8W0463003002A114
C: #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
I: If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
I: If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=qcserial
I: If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=qcserial

Cc: [email protected]
Signed-off-by: Frans Klaver <[email protected]>
---
I noticed an e-mail address discrepancy that git-send-email didn't
magically fix for me. No change otherwise.

drivers/usb/serial/qcserial.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
index 586ef5551e76e..73f6d3a37c0c4 100644
--- a/drivers/usb/serial/qcserial.c
+++ b/drivers/usb/serial/qcserial.c
@@ -166,6 +166,7 @@ static const struct usb_device_id id_table[] = {
{DEVICE_SWI(0x1199, 0x9090)}, /* Sierra Wireless EM7565 QDL */
{DEVICE_SWI(0x1199, 0x9091)}, /* Sierra Wireless EM7565 */
{DEVICE_SWI(0x1199, 0x90d2)}, /* Sierra Wireless EM9191 QDL */
+ {DEVICE_SWI(0x1199, 0x90d3)}, /* Sierra Wireless EM9191 */
{DEVICE_SWI(0x1199, 0xc080)}, /* Sierra Wireless EM7590 QDL */
{DEVICE_SWI(0x1199, 0xc081)}, /* Sierra Wireless EM7590 */
{DEVICE_SWI(0x413c, 0x81a2)}, /* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card */
--
2.37.1


2022-07-15 21:33:27

by Reinhard Speyerer

[permalink] [raw]
Subject: Re: [PATCH v2] usb: serial: qcserial: add EM9191 support

On Fri, Jul 15, 2022 at 11:56:23AM +0200, Frans Klaver wrote:
> From: Frans Klaver <[email protected]>
>
> Support for QDL mode is already present for EM9191 modules, but the
> non-QDL mode appears to be missing. Add it now.
>
> T: Bus=03 Lev=03 Prnt=04 Port=01 Cnt=02 Dev#= 17 Spd=480 MxCh= 0
> D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
> P: Vendor=1199 ProdID=90d3 Rev=00.06
> S: Manufacturer=Sierra Wireless, Incorporated
> S: Product=Sierra Wireless EM9191
> S: SerialNumber=8W0463003002A114
> C: #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
> I: If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
> I: If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
> I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=qcserial
> I: If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=qcserial
>
> Cc: [email protected]
> Signed-off-by: Frans Klaver <[email protected]>
> ---
> I noticed an e-mail address discrepancy that git-send-email didn't
> magically fix for me. No change otherwise.
>
> drivers/usb/serial/qcserial.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
> index 586ef5551e76e..73f6d3a37c0c4 100644
> --- a/drivers/usb/serial/qcserial.c
> +++ b/drivers/usb/serial/qcserial.c
> @@ -166,6 +166,7 @@ static const struct usb_device_id id_table[] = {
> {DEVICE_SWI(0x1199, 0x9090)}, /* Sierra Wireless EM7565 QDL */
> {DEVICE_SWI(0x1199, 0x9091)}, /* Sierra Wireless EM7565 */
> {DEVICE_SWI(0x1199, 0x90d2)}, /* Sierra Wireless EM9191 QDL */
> + {DEVICE_SWI(0x1199, 0x90d3)}, /* Sierra Wireless EM9191 */
> {DEVICE_SWI(0x1199, 0xc080)}, /* Sierra Wireless EM7590 QDL */
> {DEVICE_SWI(0x1199, 0xc081)}, /* Sierra Wireless EM7590 */
> {DEVICE_SWI(0x413c, 0x81a2)}, /* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card */

Hi Frans,

the qcserial driver used in the usb-devices output above does not seem
to be built from the mainline qcserial.c with your patch applied as USB
interface 4 is ignored by the QCSERIAL_SWI layout.

To avoid potential side effects in case Sierra Wireless adds a vendor class
USB interface 2 not intended to be used with qcserial.c it might be best
to use a new QCSERIAL_SWI2 layout similar to what has been done in
their MBPL drivers mentioned here
https://forum.sierrawireless.com/t/rc7620-and-linux-driver/24308/ .

Regards,
Reinhard

2022-07-15 21:40:45

by Frans Klaver

[permalink] [raw]
Subject: Re: [PATCH v2] usb: serial: qcserial: add EM9191 support



On July 15, 2022 11:00:45 PM GMT+02:00, Reinhard Speyerer <[email protected]> wrote:

>the qcserial driver used in the usb-devices output above does not seem
>to be built from the mainline qcserial.c with your patch applied as USB
>interface 4 is ignored by the QCSERIAL_SWI layout.

Right, I will need to look into that then. I won't be able to access the devices for a couple of weeks, though. It might also just have been me no paying attention while testing. I'll get back to this.


>To avoid potential side effects in case Sierra Wireless adds a vendor class
>USB interface 2 not intended to be used with qcserial.c it might be best
>to use a new QCSERIAL_SWI2 layout similar to what has been done in
>their MBPL drivers mentioned here
>https://forum.sierrawireless.com/t/rc7620-and-linux-driver/24308/ .

I'll have a look at this too.

Thanks,
Frans