* [PATCH] Add support for SDX55 based Sierra Wireless 5G modules
@ 2021-06-11 13:45 Stefan Brüns
2021-06-11 13:58 ` [PATCH v2] USB: serial: qcserial: Support " Stefan Brüns
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Brüns @ 2021-06-11 13:45 UTC (permalink / raw)
To: Johan Hovold, Greg Kroah-Hartman
Cc: Stefan Brüns, linux-usb, linux-kernel
The devices exposes two different interface compositions:
- QDL mode, single interface
- MBIM mode, MBIM class compliant plus AT/DM(/ADB)
Current firmware versions (up to 01.07.19) do not expose an NMEA port.
Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
---
drivers/usb/serial/qcserial.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
index 83da8236e3c8..4ff325a14c98 100644
--- a/drivers/usb/serial/qcserial.c
+++ b/drivers/usb/serial/qcserial.c
@@ -26,12 +26,15 @@ enum qcserial_layouts {
QCSERIAL_G1K = 1, /* Gobi 1000 */
QCSERIAL_SWI = 2, /* Sierra Wireless */
QCSERIAL_HWI = 3, /* Huawei */
+ QCSERIAL_SWI2 = 4, /* Sierra Wireless */
};
#define DEVICE_G1K(v, p) \
USB_DEVICE(v, p), .driver_info = QCSERIAL_G1K
#define DEVICE_SWI(v, p) \
USB_DEVICE(v, p), .driver_info = QCSERIAL_SWI
+#define DEVICE_SWI2(v, p) \
+ USB_DEVICE(v, p), .driver_info = QCSERIAL_SWI2
#define DEVICE_HWI(v, p) \
USB_DEVICE(v, p), .driver_info = QCSERIAL_HWI
@@ -181,6 +184,10 @@ static const struct usb_device_id id_table[] = {
{DEVICE_SWI(0x413c, 0x81d1)}, /* Dell Wireless 5818 */
{DEVICE_SWI(0x413c, 0x81d2)}, /* Dell Wireless 5818 */
+ /* SDX55 based Sierra Wireless devices */
+ {DEVICE_SWI2(0x1199, 0x90d2)}, /* Sierra Wireless EM919x QDL */
+ {DEVICE_SWI2(0x1199, 0x90d3)}, /* Sierra Wireless EM919x */
+
/* Huawei devices */
{DEVICE_HWI(0x03f0, 0x581d)}, /* HP lt4112 LTE/HSPA+ Gobi 4G Modem (Huawei me906e) */
@@ -359,6 +366,28 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
break;
}
break;
+ case QCSERIAL_SWI2:
+ /*
+ * Sierra Wireless SDX55 in MBIM mode:
+ * 0/1: MBIM Control/Data
+ * 3: AT-capable modem port
+ * 4: DM/DIAG (use libqcdm from ModemManager for communication)
+ * 5: ADB
+ */
+ switch (ifnum) {
+ case 3:
+ dev_dbg(dev, "Modem port found\n");
+ sendsetup = true;
+ break;
+ case 4:
+ dev_dbg(dev, "DM/DIAG interface found\n");
+ break;
+ default:
+ /* don't claim any unsupported interface */
+ altsetting = -1;
+ break;
+ }
+ break;
case QCSERIAL_HWI:
/*
* Huawei devices map functions by subclass + protocol
--
2.31.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2] USB: serial: qcserial: Support for SDX55 based Sierra Wireless 5G modules
2021-06-11 13:45 [PATCH] Add support for SDX55 based Sierra Wireless 5G modules Stefan Brüns
@ 2021-06-11 13:58 ` Stefan Brüns
2021-06-24 7:28 ` Johan Hovold
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Brüns @ 2021-06-11 13:58 UTC (permalink / raw)
To: Johan Hovold, Greg Kroah-Hartman
Cc: Stefan Brüns, linux-usb, linux-kernel
The devices exposes two different interface compositions:
- QDL mode, single interface
- MBIM mode, MBIM class compliant plus AT/DM(/ADB)
Current firmware versions (up to 01.07.19) do not expose an NMEA port.
Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
---
drivers/usb/serial/qcserial.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
index 83da8236e3c8..4ff325a14c98 100644
--- a/drivers/usb/serial/qcserial.c
+++ b/drivers/usb/serial/qcserial.c
@@ -26,12 +26,15 @@ enum qcserial_layouts {
QCSERIAL_G1K = 1, /* Gobi 1000 */
QCSERIAL_SWI = 2, /* Sierra Wireless */
QCSERIAL_HWI = 3, /* Huawei */
+ QCSERIAL_SWI2 = 4, /* Sierra Wireless */
};
#define DEVICE_G1K(v, p) \
USB_DEVICE(v, p), .driver_info = QCSERIAL_G1K
#define DEVICE_SWI(v, p) \
USB_DEVICE(v, p), .driver_info = QCSERIAL_SWI
+#define DEVICE_SWI2(v, p) \
+ USB_DEVICE(v, p), .driver_info = QCSERIAL_SWI2
#define DEVICE_HWI(v, p) \
USB_DEVICE(v, p), .driver_info = QCSERIAL_HWI
@@ -181,6 +184,10 @@ static const struct usb_device_id id_table[] = {
{DEVICE_SWI(0x413c, 0x81d1)}, /* Dell Wireless 5818 */
{DEVICE_SWI(0x413c, 0x81d2)}, /* Dell Wireless 5818 */
+ /* SDX55 based Sierra Wireless devices */
+ {DEVICE_SWI2(0x1199, 0x90d2)}, /* Sierra Wireless EM919x QDL */
+ {DEVICE_SWI2(0x1199, 0x90d3)}, /* Sierra Wireless EM919x */
+
/* Huawei devices */
{DEVICE_HWI(0x03f0, 0x581d)}, /* HP lt4112 LTE/HSPA+ Gobi 4G Modem (Huawei me906e) */
@@ -359,6 +366,28 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
break;
}
break;
+ case QCSERIAL_SWI2:
+ /*
+ * Sierra Wireless SDX55 in MBIM mode:
+ * 0/1: MBIM Control/Data
+ * 3: AT-capable modem port
+ * 4: DM/DIAG (use libqcdm from ModemManager for communication)
+ * 5: ADB
+ */
+ switch (ifnum) {
+ case 3:
+ dev_dbg(dev, "Modem port found\n");
+ sendsetup = true;
+ break;
+ case 4:
+ dev_dbg(dev, "DM/DIAG interface found\n");
+ break;
+ default:
+ /* don't claim any unsupported interface */
+ altsetting = -1;
+ break;
+ }
+ break;
case QCSERIAL_HWI:
/*
* Huawei devices map functions by subclass + protocol
--
2.31.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2] USB: serial: qcserial: Support for SDX55 based Sierra Wireless 5G modules
2021-06-11 13:58 ` [PATCH v2] USB: serial: qcserial: Support " Stefan Brüns
@ 2021-06-24 7:28 ` Johan Hovold
2021-06-24 11:15 ` Bjørn Mork
2021-07-01 16:41 ` Stefan Brüns
0 siblings, 2 replies; 8+ messages in thread
From: Johan Hovold @ 2021-06-24 7:28 UTC (permalink / raw)
To: Stefan Brüns
Cc: Greg Kroah-Hartman, linux-usb, linux-kernel, Daniele Palmas,
Bjørn Mork
[ +CC: Daniele and Bjørn ]
On Fri, Jun 11, 2021 at 03:58:41PM +0200, Stefan Brüns wrote:
> The devices exposes two different interface compositions:
> - QDL mode, single interface
> - MBIM mode, MBIM class compliant plus AT/DM(/ADB)
>
> Current firmware versions (up to 01.07.19) do not expose an NMEA port.
We already have at least one SDX55 based modem (FN980) supported by the
option driver. Any particular reason why you chose to add it to qcserial
instead of option?
Note that the FN980 also needs the ZLP flag set in QDL (flashing) mode,
I'd assume this one needs it too.
Could you please also post the output of usb-devices (or lsusb -v) for
this device in MBIM mode?
> Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
> ---
> drivers/usb/serial/qcserial.c | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
> index 83da8236e3c8..4ff325a14c98 100644
> --- a/drivers/usb/serial/qcserial.c
> +++ b/drivers/usb/serial/qcserial.c
> @@ -26,12 +26,15 @@ enum qcserial_layouts {
> QCSERIAL_G1K = 1, /* Gobi 1000 */
> QCSERIAL_SWI = 2, /* Sierra Wireless */
> QCSERIAL_HWI = 3, /* Huawei */
> + QCSERIAL_SWI2 = 4, /* Sierra Wireless */
> };
>
> #define DEVICE_G1K(v, p) \
> USB_DEVICE(v, p), .driver_info = QCSERIAL_G1K
> #define DEVICE_SWI(v, p) \
> USB_DEVICE(v, p), .driver_info = QCSERIAL_SWI
> +#define DEVICE_SWI2(v, p) \
> + USB_DEVICE(v, p), .driver_info = QCSERIAL_SWI2
> #define DEVICE_HWI(v, p) \
> USB_DEVICE(v, p), .driver_info = QCSERIAL_HWI
>
> @@ -181,6 +184,10 @@ static const struct usb_device_id id_table[] = {
> {DEVICE_SWI(0x413c, 0x81d1)}, /* Dell Wireless 5818 */
> {DEVICE_SWI(0x413c, 0x81d2)}, /* Dell Wireless 5818 */
>
> + /* SDX55 based Sierra Wireless devices */
> + {DEVICE_SWI2(0x1199, 0x90d2)}, /* Sierra Wireless EM919x QDL */
> + {DEVICE_SWI2(0x1199, 0x90d3)}, /* Sierra Wireless EM919x */
> +
> /* Huawei devices */
> {DEVICE_HWI(0x03f0, 0x581d)}, /* HP lt4112 LTE/HSPA+ Gobi 4G Modem (Huawei me906e) */
>
> @@ -359,6 +366,28 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
> break;
> }
> break;
> + case QCSERIAL_SWI2:
> + /*
> + * Sierra Wireless SDX55 in MBIM mode:
> + * 0/1: MBIM Control/Data
> + * 3: AT-capable modem port
> + * 4: DM/DIAG (use libqcdm from ModemManager for communication)
> + * 5: ADB
> + */
> + switch (ifnum) {
> + case 3:
> + dev_dbg(dev, "Modem port found\n");
> + sendsetup = true;
> + break;
> + case 4:
> + dev_dbg(dev, "DM/DIAG interface found\n");
> + break;
> + default:
> + /* don't claim any unsupported interface */
> + altsetting = -1;
> + break;
> + }
> + break;
> case QCSERIAL_HWI:
> /*
> * Huawei devices map functions by subclass + protocol
Johan
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] USB: serial: qcserial: Support for SDX55 based Sierra Wireless 5G modules
2021-06-24 7:28 ` Johan Hovold
@ 2021-06-24 11:15 ` Bjørn Mork
2021-07-01 16:28 ` Stefan Brüns
2021-07-01 16:41 ` Stefan Brüns
1 sibling, 1 reply; 8+ messages in thread
From: Bjørn Mork @ 2021-06-24 11:15 UTC (permalink / raw)
To: Johan Hovold
Cc: Stefan Brüns, Greg Kroah-Hartman, linux-usb, linux-kernel,
Daniele Palmas
Johan Hovold <johan@kernel.org> writes:
> Could you please also post the output of usb-devices (or lsusb -v) for
> this device in MBIM mode?
Yes, this would be nice to have.
I suspect that this device is like other SDX55 devices we've seen, using
class/subclass/function to map the vendor specific functions
too. Dropping static interface numbers. If correct, then the patch is
bogus and the interface numbers might change based on firmware version
and configuration.
Bjørn
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] USB: serial: qcserial: Support for SDX55 based Sierra Wireless 5G modules
2021-06-24 11:15 ` Bjørn Mork
@ 2021-07-01 16:28 ` Stefan Brüns
2021-07-02 7:32 ` Bjørn Mork
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Brüns @ 2021-07-01 16:28 UTC (permalink / raw)
To: Johan Hovold, Bjørn Mork
Cc: Greg Kroah-Hartman, linux-usb, linux-kernel, Daniele Palmas
[-- Attachment #1: Type: text/plain, Size: 7733 bytes --]
On Donnerstag, 24. Juni 2021 13:15:07 CEST Bjørn Mork wrote:
> Johan Hovold <johan@kernel.org> writes:
> > Could you please also post the output of usb-devices (or lsusb -v) for
> > this device in MBIM mode?
>
> Yes, this would be nice to have.
See below.
> I suspect that this device is like other SDX55 devices we've seen, using
> class/subclass/function to map the vendor specific functions
> too. Dropping static interface numbers. If correct, then the patch is
> bogus and the interface numbers might change based on firmware version
> and configuration.
Do you really expect Sierra do to something sensible? According to their
documentation functions are matched by interface numbers.
They still use broken interface descriptors with holes in interface numbering
(i.e. interface number 2 does not exist, which violates the USB standard).
Regards, Stefan
lsusb -v -d 1199:
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1199 Sierra Wireless, Inc.
idProduct 0x90d3
bcdDevice 0.06
iManufacturer 1 Sierra Wireless, Incorporated
iProduct 2 Sierra Wireless EM9191
iSerial 3 8W<nnnnnnnnnnnnn>
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x00a7
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 4
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 2 Communications
bFunctionSubClass 14
bFunctionProtocol 0
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 14
bInterfaceProtocol 0
iInterface 0
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 0
bSlaveInterface 1
CDC MBIM:
bcdMBIMVersion 1.00
wMaxControlMessage 4096
bNumberFilters 32
bMaxFilterSize 128
wMaxSegmentSize 2048
bmNetworkCapabilities 0x20
8-byte ntb input size
CDC MBIM Extended:
bcdMBIMExtendedVersion 1.00
bMaxOutstandingCommandMessages 64
wMTU 1500
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 2
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 2
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8e EP 14 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x0f EP 15 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 05 24 00 10 01
** UNRECOGNIZED: 05 24 01 00 00
** UNRECOGNIZED: 04 24 02 02
** UNRECOGNIZED: 05 24 06 00 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 9
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 48
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
--
Stefan Brüns / Bergstraße 21 / 52062 Aachen
home: +49 241 53809034 mobile: +49 151 50412019
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] USB: serial: qcserial: Support for SDX55 based Sierra Wireless 5G modules
2021-06-24 7:28 ` Johan Hovold
2021-06-24 11:15 ` Bjørn Mork
@ 2021-07-01 16:41 ` Stefan Brüns
2021-07-02 8:27 ` Johan Hovold
1 sibling, 1 reply; 8+ messages in thread
From: Stefan Brüns @ 2021-07-01 16:41 UTC (permalink / raw)
To: Johan Hovold
Cc: Greg Kroah-Hartman, linux-usb, linux-kernel, Daniele Palmas,
Bjørn Mork
[-- Attachment #1: Type: text/plain, Size: 1228 bytes --]
On Donnerstag, 24. Juni 2021 09:28:59 CEST Johan Hovold wrote:
> [ +CC: Daniele and Bjørn ]
>
> On Fri, Jun 11, 2021 at 03:58:41PM +0200, Stefan Brüns wrote:
> > The devices exposes two different interface compositions:
> > - QDL mode, single interface
> > - MBIM mode, MBIM class compliant plus AT/DM(/ADB)
> >
> > Current firmware versions (up to 01.07.19) do not expose an NMEA port.
>
> We already have at least one SDX55 based modem (FN980) supported by the
> option driver. Any particular reason why you chose to add it to qcserial
> instead of option?
>
Support for qualcomm based modems are spread over option and qcserial. All
other Sierra devices are supported by qcserial.
> Note that the FN980 also needs the ZLP flag set in QDL (flashing) mode,
> I'd assume this one needs it too.
It depends if you implement the Firehose protocol in accordance to the
specification or not. 80-NG319-1 (Firehose specification) explicitly states to
pad any XML command packet which is an exact multiple of 512 bytes with an
extra newline or other whitespace character.
Regards,
Stefan
--
Stefan Brüns / Bergstraße 21 / 52062 Aachen
home: +49 241 53809034 mobile: +49 151 50412019
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] USB: serial: qcserial: Support for SDX55 based Sierra Wireless 5G modules
2021-07-01 16:28 ` Stefan Brüns
@ 2021-07-02 7:32 ` Bjørn Mork
0 siblings, 0 replies; 8+ messages in thread
From: Bjørn Mork @ 2021-07-02 7:32 UTC (permalink / raw)
To: Stefan Brüns
Cc: Johan Hovold, Greg Kroah-Hartman, linux-usb, linux-kernel,
Daniele Palmas
Stefan Brüns <stefan.bruens@rwth-aachen.de> writes:
> On Donnerstag, 24. Juni 2021 13:15:07 CEST Bjørn Mork wrote:
>> Johan Hovold <johan@kernel.org> writes:
>> > Could you please also post the output of usb-devices (or lsusb -v) for
>> > this device in MBIM mode?
>>
>> Yes, this would be nice to have.
>
> See below.
>
>> I suspect that this device is like other SDX55 devices we've seen, using
>> class/subclass/function to map the vendor specific functions
>> too. Dropping static interface numbers. If correct, then the patch is
>> bogus and the interface numbers might change based on firmware version
>> and configuration.
>
> Do you really expect Sierra do to something sensible? According to their
> documentation functions are matched by interface numbers.
Well... I expect them to be as sensible as any other vendor. And I
expect docs to be intendend as guidance only ;-)
> They still use broken interface descriptors with holes in interface numbering
> (i.e. interface number 2 does not exist, which violates the USB standard).
Right. Wrt the violation, I think that train left a decade ago.
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 3
> bAlternateSetting 0
> bNumEndpoints 3
> bInterfaceClass 255 Vendor Specific Class
> bInterfaceSubClass 0
> bInterfaceProtocol 0
[..]
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 4
> bAlternateSetting 0
> bNumEndpoints 2
> bInterfaceClass 255 Vendor Specific Class
> bInterfaceSubClass 255 Vendor Specific Subclass
> bInterfaceProtocol 48
So Sierra do follow the same pattern we've seen on other X55 devices:
ff/00/00 - AT
ff/ff/30 - QCDM
See commits
accf227de4d2 ("USB: serial: option: Add support for Quectel RM500Q")
d6c1ddd938d8 ("USB: serial: option: add Quectel EM160R-GL")
for other examples.
This obviously doesn't make any difference if your configuration is the
only one. But I believe that is unlikely. There are probably ways the
layout can be changed, even if currenly not documented. The advantage
of class/subclass/protocol matching to function is that it works
regardless of the number of functions and their interface number.
Bjørn
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] USB: serial: qcserial: Support for SDX55 based Sierra Wireless 5G modules
2021-07-01 16:41 ` Stefan Brüns
@ 2021-07-02 8:27 ` Johan Hovold
0 siblings, 0 replies; 8+ messages in thread
From: Johan Hovold @ 2021-07-02 8:27 UTC (permalink / raw)
To: Stefan Brüns
Cc: Greg Kroah-Hartman, linux-usb, linux-kernel, Daniele Palmas,
Bjørn Mork
[-- Attachment #1: Type: text/plain, Size: 1572 bytes --]
On Thu, Jul 01, 2021 at 06:41:26PM +0200, Stefan Brüns wrote:
> On Donnerstag, 24. Juni 2021 09:28:59 CEST Johan Hovold wrote:
> > [ +CC: Daniele and Bjørn ]
> >
> > On Fri, Jun 11, 2021 at 03:58:41PM +0200, Stefan Brüns wrote:
> > > The devices exposes two different interface compositions:
> > > - QDL mode, single interface
> > > - MBIM mode, MBIM class compliant plus AT/DM(/ADB)
> > >
> > > Current firmware versions (up to 01.07.19) do not expose an NMEA port.
> >
> > We already have at least one SDX55 based modem (FN980) supported by the
> > option driver. Any particular reason why you chose to add it to qcserial
> > instead of option?
> >
> Support for qualcomm based modems are spread over option and qcserial. All
> other Sierra devices are supported by qcserial.
Ok, but we may still end up adding this one to option if matching on the
interface protocol works.
> > Note that the FN980 also needs the ZLP flag set in QDL (flashing) mode,
> > I'd assume this one needs it too.
>
> It depends if you implement the Firehose protocol in accordance to the
> specification or not. 80-NG319-1 (Firehose specification) explicitly states to
> pad any XML command packet which is an exact multiple of 512 bytes with an
> extra newline or other whitespace character.
Thanks for the details. If you're referring to the device-side
implementation it seems a bit fragile to not just set the ZLP flag since
apparently there are some non-standard implementations out there. But
sure, we can do that later if needed.
Johan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-07-02 8:27 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-11 13:45 [PATCH] Add support for SDX55 based Sierra Wireless 5G modules Stefan Brüns
2021-06-11 13:58 ` [PATCH v2] USB: serial: qcserial: Support " Stefan Brüns
2021-06-24 7:28 ` Johan Hovold
2021-06-24 11:15 ` Bjørn Mork
2021-07-01 16:28 ` Stefan Brüns
2021-07-02 7:32 ` Bjørn Mork
2021-07-01 16:41 ` Stefan Brüns
2021-07-02 8:27 ` Johan Hovold
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).