how to support EM7565 modem

Bjørn Mork bjorn at mork.no
Tue Nov 28 20:36:38 UTC 2017


Sebastian Sjoholm <sebastian.sjoholm at gmail.com> writes:

> Hi,
>
> AT (qcserial) command test:
>
> at!gstatus?
> !GSTATUS:
> Current Time:  115797 Temperature: 27
> Reset Counter: 1 Mode:        ONLINE
> System mode:   LTE        PS state:    Attached
> LTE band:      B7      LTE bw:      20 MHz
> LTE Rx chan:   3148 LTE Tx chan: 21148
> LTE SSC1 state:NOT ASSIGNED
> LTE SSC2 state:NOT ASSIGNED
> LTE SSC3 state:NOT ASSIGNED
> LTE SSC4 state:NOT ASSIGNED

Nice.  I guess we need to extend

 qmicli --nas-get-lte-cphy-ca-info

was well..

> QMI (qmi_wwan) connection test:
>
> # qmicli -d /dev/cdc-wdm0 --wds-start-network="apn=lte1.dynamic.com"
> --client-no-release-cid
> [/dev/cdc-wdm0] Network started
> Packet data handle: '2245208896'
> [/dev/cdc-wdm0] Client ID not released:
> Service: 'wds'
>     CID: '18'
> # udhcpc -i wwan0
> udhcpc (v1.22.1) started
> Sending discover...
> Sending select for 10.39.14.163...
> Lease of 10.39.14.163 obtained, lease time 7200
> ip: RTNETLINK answers: File exists
> # route add 10.218.245.160 dev wwan0
> # ping -c 5 10.218.245.160
> PING 10.218.245.160 (10.218.245.160) 56(84) bytes of data.
> 64 bytes from 10.218.245.160: icmp_seq=1 ttl=62 time=192 ms
> 64 bytes from 10.218.245.160: icmp_seq=2 ttl=62 time=30.1 ms
> 64 bytes from 10.218.245.160: icmp_seq=3 ttl=62 time=30.9 ms
> 64 bytes from 10.218.245.160: icmp_seq=4 ttl=62 time=29.0 ms
> 64 bytes from 10.218.245.160: icmp_seq=5 ttl=62 time=29.9 ms
>
> --- 10.218.245.160 ping statistics ---
> 5 packets transmitted, 5 received, 0% packet loss, time 4001ms
> rtt min/avg/max/mdev = 29.074/62.520/192.450/64.967 ms
> # qmicli -d /dev/cdc-wdm0 --wds-get-current-settings
> [/dev/cdc-wdm0] Current settings retrieved:
>            IP Family: IPv4
>         IPv4 address: 10.39.14.163
>     IPv4 subnet mask: 255.255.255.248
> IPv4 gateway address: 10.39.14.164
>     IPv4 primary DNS: 172.32.55.20
>   IPv4 secondary DNS: 172.32.55.21
>                  MTU: 1500
>              Domains: none
> # qmicli -d /dev/cdc-wdm0 --wds-stop-network=2245208896 --client-cid=18
> Network cancelled... releasing resources
> [/dev/cdc-wdm0] Network stopped


That looks very good.

> Here are suggested changes;
>
> diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
> index 8c37336..5f89671 100644
> --- a/drivers/net/usb/qmi_wwan.c
> +++ b/drivers/net/usb/qmi_wwan.c
> @@ -1201,6 +1201,7 @@ static const struct usb_device_id products[] = {
>         {QMI_FIXED_INTF(0x1199, 0x9079, 10)},   /* Sierra Wireless EM74xx */
>         {QMI_FIXED_INTF(0x1199, 0x907b, 8)},    /* Sierra Wireless EM74xx */
>         {QMI_FIXED_INTF(0x1199, 0x907b, 10)},   /* Sierra Wireless EM74xx */
> +       {QMI_FIXED_INTF(0x1199, 0x9091, 8)},    /* Sierra Wireless EM7565 */
>         {QMI_FIXED_INTF(0x1bbb, 0x011e, 4)},    /* Telekom Speedstick LTE
> II (Alcatel One Touch L100V LTE) */
>         {QMI_FIXED_INTF(0x1bbb, 0x0203, 2)},    /* Alcatel L800MA */
>         {QMI_FIXED_INTF(0x2357, 0x0201, 4)},    /* TP-LINK HSUPA Modem
> MA180 */
> diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
> index eb99289..ae5aaf2 100644
> --- a/drivers/usb/serial/qcserial.c
> +++ b/drivers/usb/serial/qcserial.c
> @@ -165,6 +165,7 @@ static const struct usb_device_id id_table[] = {
>         {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, 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 */

Please add the bootloader/QDL device ID (1199:9090, I guess?) to
qcserial.c too, so qmi-firmware-update etc can do its job.



Bjørn


More information about the libqmi-devel mailing list