how to support EM7565 modem
Reinhard Speyerer
rspmn at arcor.de
Fri Dec 8 22:06:16 UTC 2017
On Fri, Dec 08, 2017 at 04:42:00AM +0100, Sebastian Sjoholm wrote:
> >
> > On Dec 7, 2017, at 22:33 , Reinhard Speyerer <rspmn at arcor.de> wrote:
> >
> > the EM7565 I received yesterday has firmware version
> > SWI9X50C_01.00.02.00 6ff48a jenkins 2017/09/29 05:54:26 and also shows
> > the AT!USBCOMP?/QMI interface mismatches described by Sebastian. Don't
> > know if 01.00.02.00 (ATI reports IMEI SV: 2) still should be
> > considered an early firmware version.
>
> This is same version as my EM7565 arrived with.
>
> I associate the ???jenkins??? to the CI framework, which makes me thinking that this might still be work in progress on the firmware.
Hi Sebastian,
the firmware definitely has still a few rough edges but since you could
already use it for several LTE CA tests it can't be that bad after all...
>
> >
> > When trying to use the GPS port of the EM7565 I noticed that it would
> > not send NMEA data after activating them with echo '$GPS_START' >
> > /dev/ttyUSB1 when only using {DEVICE_SWI(0x1199, 0x9091)} in the
> > qcserial driver. At least for firmware version 01.00.02.00 send_setup
> > on USB interface 2 has to be added too like this
> >
> > --- drivers/usb/serial/qcserial.c.orig 2017-07-27 18:10:39.000000000 -0400
> > +++ drivers/usb/serial/qcserial.c 2017-12-07 15:22:05.106625551 -0500
> > @@ -30,6 +30,7 @@ enum qcserial_layouts {
> > QCSERIAL_G1K = 1, /* Gobi 1000 */
> > QCSERIAL_SWI = 2, /* Sierra Wireless */
> > QCSERIAL_HWI = 3, /* Huawei */
> > + QCSERIAL_SW2 = 4, /* SWI with send_setup for GPS port too */
> > };
> >
> > #define DEVICE_G1K(v, p) \
> > @@ -38,6 +39,8 @@ enum qcserial_layouts {
> > USB_DEVICE(v, p), .driver_info = QCSERIAL_SWI
> > #define DEVICE_HWI(v, p) \
> > USB_DEVICE(v, p), .driver_info = QCSERIAL_HWI
> > +#define DEVICE_SW2(v, p) \
> > + USB_DEVICE(v, p), .driver_info = QCSERIAL_SW2
> >
> > static const struct usb_device_id id_table[] = {
> > /* Gobi 1000 devices */
> > @@ -165,6 +168,8 @@ static const struct usb_device_id id_tab
> > {DEVICE_SWI(0x1199, 0x9079)}, /* Sierra Wireless EM74xx */
> > {DEVICE_SWI(0x1199, 0x907a)}, /* Sierra Wireless EM74xx QDL */
> > {DEVICE_SWI(0x1199, 0x907b)}, /* Sierra Wireless EM74xx */
> > + {DEVICE_SWI(0x1199, 0x9090)}, /* Sierra Wireless EM7565 QDL */
> > + {DEVICE_SW2(0x1199, 0x9091)}, /* Sierra Wireless EM7565 */
> > {DEVICE_SWI(0x413c, 0x81a2)}, /* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card */
> > {DEVICE_SWI(0x413c, 0x81a3)}, /* Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card */
> > {DEVICE_SWI(0x413c, 0x81a4)}, /* Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card */
> > @@ -328,6 +333,7 @@ static int qcprobe(struct usb_serial *se
> > }
> > break;
> > case QCSERIAL_SWI:
> > + case QCSERIAL_SW2:
> > /*
> > * Sierra Wireless layout:
> > * 0: DM/DIAG (use libqcdm from ModemManager for communication)
> > @@ -341,6 +347,8 @@ static int qcprobe(struct usb_serial *se
> > break;
> > case 2:
> > dev_dbg(dev, "NMEA GPS interface found\n");
> > + if (id->driver_info == QCSERIAL_SW2)
> > + sendsetup = true;
> > break;
> > case 3:
> > dev_dbg(dev, "Modem port found\n");
> >
> > to make the GPS port work.
> >
> > Regards,
> > Reinhard
>
> I have not forwarded the patch yet, and I guess that was good, since it seems that we need to add more, right?
>
Yes, this was a good thing as for the EM7565 only adding
{DEVICE_SWI(0x1199, 0x9091)} is not sufficient to make the GPS port work.
Simply adding send_setup = true for the GPS port for the QCSERIAL_SWI
layout would require less changes but might potentially break existing
setups given the large number of DEVICE_SWI entries. Therefore I added
a new QCSERIAL_SW2 layout variant.
What are your plans w.r.t. submitting patches? Should I submit the
qcserial patch above myself or would you prefer to submit it together
with your qmi_wwan patch?
Regards,
Reinhard
More information about the libqmi-devel
mailing list