Commit Graph

7059 Commits

Author SHA1 Message Date
Aleksander Morgado
47ed19d5be broadband-bearer: don't do connection checks on CDMA
On CDMA-only connections we won't have a CID defined, so instead of
getting in a loop of warnings reporting "cid not defined", early error
out with an UNSUPPORTED error so that the connection check isn't tried
any more.

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/83
2018-09-08 10:04:58 +02:00
Ben Chan
21420e450d broadband-modem: port modem_cdma_register_in_network to use GTask 2018-09-07 08:35:44 -07:00
Ben Chan
fcec3b3355 broadband-modem: port modem_cdma_setup_registration_checks to use GTask 2018-09-07 08:35:44 -07:00
Ben Chan
c0607ede9b broadband-modem: port modem_cdma_setup_cleanup_unsolicited_events to use GTask 2018-09-07 08:35:44 -07:00
Ben Chan
a51a0ba23e broadband-modem: port modem_load_access_technologies to use GTask 2018-09-07 08:35:44 -07:00
Aleksander Morgado
2d7bf65093 broadband-modem-qmi: avoid completing the GTask twice when loading capabilities 2018-09-06 10:43:20 +02:00
Aleksander Morgado
e953d285c1 broadband-modem-qmi: add missing task unref when loading signal values 2018-09-06 10:43:15 +02:00
Aleksander Morgado
38de53b195 broadband-modem-qmi: make sure result values are not in context when completing
In order to avoid having the result values in 2 places (context and
result) when the GTask is completed, we will steal the pointer from
the context before it's set as result of the GTask.
2018-09-06 10:43:12 +02:00
Paul Bartell
6e8aab2c4e broadband-modem-qmi: Pass signal values_result directly rather than duplicating with g_memdup
corrects segfault introduced in 7d8f0600e6

Signed-off-by: Paul Bartell <p.bartell@temperednetworks.com>
2018-09-04 14:20:19 -07:00
Ben Chan
1b3b2e26a7 test,modem-helpers: remove unnecessary NULL check for g_free()
g_free() handles a NULL pointer properly, so there is no need to have a
NULL check before calling g_free().
2018-08-29 08:35:46 +02:00
Aleksander Morgado
8e98922880 libmm-glib,pco: add some more missing documentation for MMPco 2018-08-28 10:50:44 +02:00
Ben Chan
c49f60db02 libmm-glib,pco: add missing documentation for MMPco 2018-08-28 10:50:39 +02:00
Aleksander Morgado
28c1acf2e1 port-probe: fix build when QMI over MBIM is unsupported 2018-08-28 09:25:37 +02:00
Guido Günther
f24d8279bc docs: mm_modem_get_sim is async
Signed-off-by: Guido Günther <guido.gunther@puri.sm>
2018-08-27 10:55:19 -05:00
Ben Chan
0520836afa mbim: fix inconsistency in WITH_QMI guards 2018-08-23 09:44:28 +02:00
Ben Chan
6530683cfb broadband-modem-mbim: add missing guard for shared_qmi_init()
Fixes: 9e42a19742
2018-08-22 17:21:34 +02:00
Ben Chan
2729b08696 port-mbim: add missing guard for try_qmi_over_mbim in mm_port_mbim_open()
Fixes: c0cc694c67
2018-08-22 17:21:24 +02:00
Ben Chan
7c5cfa13a1 xmm: include string.h for strlen()
This patch fixes the following compiler warning:

xmm/mm-modem-helpers-xmm.c:388:38: error: implicitly declaring library function 'strlen' with type 'unsigned long (const char *)' [-Werror,-Wimplicit-function-declaration]
    g_regex_match_full (r, response, strlen (response), 0, 0, &match_info, &inner_error);
                                     ^
2018-08-21 23:11:29 +02:00
Ben Chan
f6c310ba82 shared-qmi: include string.h for memset()
This patch fixes the following compiler warning:

mm-shared-qmi.c:447:9: error: implicitly declaring library function 'memset' with type 'void *(void *, int, unsigned long)' [-Werror,-Wimplicit-function-declaration]
        memset (buf, 0, sizeof (buf));
        ^
2018-08-21 23:11:08 +02:00
Aleksander Morgado
59e79c996b cinterion: new 'MMSharedCinterion' interface
Implement a new interface to keep the code shared between the QMI and
non-QMI modem implementations.

While doing that, also fix the parent interface pointer handling, so
that it isn't a static pointer applicable to all modems, and make it a
per-modem specific pointer. Without this fix, ModemManager would crash
if e.g. running with both a QMI and non-QMI Cinterion modem at the
same time.

The new shared Cinterion logic will be in charge of managing all GPS
sources not already managed by the parent interface. E.g. if the
parent implementation already supports QMI-based GPS location (using
the LOC service for example) prefer that to the custom AT-based
logic.
2018-08-21 17:06:55 +00:00
Aleksander Morgado
6e9bf39ecf xmm: implement power management operations 2018-08-21 17:02:39 +00:00
Aleksander Morgado
36e09ef441 fibocom: include udev rules tests 2018-08-21 17:02:39 +00:00
Aleksander Morgado
475e182819 fibocom: support XMM-based devices 2018-08-21 17:02:39 +00:00
Aleksander Morgado
da046fe566 plugin: new properties to support Intel XMM capability probing 2018-08-21 17:02:39 +00:00
Aleksander Morgado
82262117e6 port-probe: support probing for Intel XMM capabilities
Same thing as we do for Icera.
2018-08-21 17:02:39 +00:00
Aleksander Morgado
f2c508f8b9 xmm: new 'MMBroadbandModemMbimXmm' modem object 2018-08-21 17:02:39 +00:00
Aleksander Morgado
656102633c xmm: new 'MMBroadbandModemXmm' modem object 2018-08-21 17:02:39 +00:00
Aleksander Morgado
917b23bbc7 xmm: new 'MMSharedXmm' modem interface
With support for managing bands and modes.
2018-08-21 17:02:39 +00:00
Aleksander Morgado
2e0471fe6a libmm-glib: new common helpers to check band types 2018-08-21 17:02:39 +00:00
Aleksander Morgado
6262e844f5 xmm: new helper to get 'any' allowed mode combination 2018-08-21 17:02:39 +00:00
Aleksander Morgado
d6b1c321ef xmm: new common XACT=X builder for Intel XMM based devices 2018-08-21 17:02:39 +00:00
Aleksander Morgado
023ba97d9c xmm: new common XACT? parser for Intel XMM based devices 2018-08-21 17:02:39 +00:00
Aleksander Morgado
142f1d0360 xmm: new common XACT=? parser for Intel XMM based devices 2018-08-21 17:02:39 +00:00
Aleksander Morgado
69ca442dd4 api: define E-UTRAN bands 49 to 64 2018-08-21 17:02:39 +00:00
Aleksander Morgado
1b002a3584 fibocom: ignore intel trace port in the L850-GL 2018-08-21 17:02:39 +00:00
Aleksander Morgado
af8adcc756 fibocom: new plugin with support for MBIM devices 2018-08-21 17:02:39 +00:00
Aleksander Morgado
532ff24101 broadband-modem-mbim: implement 3GPP USSD support 2018-08-21 16:50:15 +00:00
Aleksander Morgado
eda46d05cf charsets: new helper to convert binary input data to UTF-8
Most of all the other APIs we have are expecting binary data (e.g.
UCS-2 encoded strings) in ASCII hex format, because they were going
to be used in text AT commands. For binary protocols allowing binary
data, we need use a more generic API that provides an explicit data
size.
2018-08-21 16:50:15 +00:00
Aleksander Morgado
e90ced5e0f iface-modem-3gpp-ussd: new helper to get current state 2018-08-21 16:50:15 +00:00
Aleksander Morgado
d16a1711fd iface-modem-3gpp-ussd: prefer 'events' naming to 'result codes'
The 'result codes' naming is much more AT-protocol specific, 'events'
is more generic.
2018-08-21 16:50:15 +00:00
Aleksander Morgado
3bc9a2dbe2 broadband-modem,ussd: explain encoding/decoding logic 2018-08-21 16:50:15 +00:00
Aleksander Morgado
6838a3f715 broadband-modem,ussd: port to GTask 2018-08-21 16:50:15 +00:00
Aleksander Morgado
fc41c167ce iface-modem-3gpp,ussd: let send_finish() return a newly allocated string
GTask integration will benefit from this change.
2018-08-21 16:50:15 +00:00
Aleksander Morgado
4ef3623e63 shared-qmi: refactor parse_as_utf16_url()
Let it return a GArray directly. We don't expect this method to ever
fail, as it's converting from UTF-8 to UTF-16.
2018-08-21 17:00:21 +02:00
Aleksander Morgado
6342088458 shared-qmi: fix context type in GPS operation mode timeout handler 2018-08-21 16:57:33 +02:00
Aleksander Morgado
c9d1d0572a shared-qmi: inject "xtra data" if "predicted orbits data" unsupported 2018-08-21 13:26:08 +00:00
Aleksander Morgado
efa14947b4 shared-qmi,loc: setup reports every 5s may be broken
Configuring reports every 5s may lead to GPGGA traces reported like this:

    $GPGGA,211645.00,,,,,0,,,,,,,,*4D
    $GPGGA,211646.00,4030.003988,N,00330.761876,W,1,07,1.0,691.6,M,53.0,M,,*74
    $GPGGA,211650.00,,,,,0,,,,,,,,*49
    $GPGGA,211651.00,4030.005405,N,00330.763540,W,1,07,1.0,688.9,M,53.0,M,,*71
    $GPGGA,211655.00,,,,,0,,,,,,,,*4C
    $GPGGA,211656.00,4030.008074,N,00330.765338,W,1,07,0.9,679.9,M,53.0,M,,*70
    $GPGGA,211700.00,,,,,0,,,,,,,,*4D
    $GPGGA,211701.00,4030.009258,N,00330.765510,W,1,07,1.0,678.3,M,53.0,M,,*71
    $GPGGA,211705.00,,,,,0,,,,,,,,*48

Which is totally undesirable, as the GPS location would be flapping
between set and unset.

Use the default of 1s explicitly, which behaves properly.
2018-08-21 13:26:08 +00:00
Aleksander Morgado
666622b4d4 broadband-modem-mbim: report Unsupported if QMI over MBIM not available
For non-Qualcomm MBIM devices, report a generic "Unsupported" error if
we try to do an operation that would otherwise be only available with
QMI-over-MBIM.
2018-08-21 13:26:08 +00:00
Aleksander Morgado
d3b43bd0a6 shared-qmi: support for Qualcomm gpsOneXTRA assistance data
The gpsOneXTRA assistance data provides a convenient way to inject
predicted orbit information into the module, without requiring to have
an Internet connection in the module itself.
2018-08-21 13:26:08 +00:00
Aleksander Morgado
091bf4dbd8 api: support location assistance data
Sometimes SUPL-server based A-GPS is not possible, e.g. if the module
doesn't have Internet connectivity. In such cases, the modem may
support injecting additional "assistance data" that may be downloaded
from the Internet using external means (e.g. WiFi), in order to keep
having a quick time to first fix.

We now support using this location assistance data, with the following
new API elements:

 * A new mask of supported assistance data types is provided in the
   SupportedAssistanceData property.

 * A new list of URLs from where the aassistance data may be
   downloaded is also provided in a new AssistanceDataServers
   property.

 * A new InjectAssistanceData() method is provided, to perform the
   data injection in the module once it's been downloaded to the host
   system.
2018-08-21 13:26:08 +00:00