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