Commit Graph
5767 Commits
Author SHA1 Message Date
Aleksander Morgado f253c15c1f port-serial: improve logging of device-level flow control settings 2018-09-12 17:15:46 +00:00
Aleksander Morgado 48d2fa399a port-serial: Flow Control property is flags, not enum
MMFlowControl is a flags enumeration, so change the property type to
match that, or we'll end up with nasty criticals during runtime.

    (ModemManager:30758): GLib-GObject-CRITICAL **: 10:54:26.435: g_param_spec_enum: assertion 'G_TYPE_IS_ENUM (enum_type)' failed

    Thread 1 "ModemManager" received signal SIGTRAP, Trace/breakpoint trap.
    0x00007ffff71f2a96 in ?? () from /usr/lib/libglib-2.0.so.0
    (gdb) bt
    #0  0x00007ffff71f2a96 in  () at /usr/lib/libglib-2.0.so.0
    #1  0x00007ffff71f3def in g_logv () at /usr/lib/libglib-2.0.so.0
    #2  0x00007ffff71f3fe0 in g_log () at /usr/lib/libglib-2.0.so.0
    #3  0x00007ffff72d90ac in g_param_spec_enum () at /usr/lib/libgobject-2.0.so.0
    #4  0x000055555564caf2 in mm_port_serial_class_init (klass=0x5555557607c0) at mm-port-serial.c:2101
    #5  0x000055555564759a in mm_port_serial_class_intern_init (klass=0x5555557607c0) at mm-port-serial.c:49
    #6  0x00007ffff72ea9b4 in g_type_class_ref () at /usr/lib/libgobject-2.0.so.0
    #7  0x00007ffff72eab5a in g_type_class_ref () at /usr/lib/libgobject-2.0.so.0
    #8  0x00007ffff72d0f53 in g_object_new_valist () at /usr/lib/libgobject-2.0.so.0
    #9  0x00007ffff72d103a in g_object_new () at /usr/lib/libgobject-2.0.so.0
    #10 0x000055555564e187 in mm_port_serial_at_new (name=0x55555576e280 "ttyUSB4", subsys=MM_PORT_SUBSYS_TTY) at mm-port-serial-at.c:533
    #11 0x0000555555602512 in serial_open_at (self=0x555555715390) at mm-port-probe.c:1285
    #12 0x00007ffff71ecb49 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
    #13 0x00007ffff71ecf59 in  () at /usr/lib/libglib-2.0.so.0
    #14 0x00007ffff71ed272 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
    #15 0x00005555555957e0 in main (argc=3, argv=0x7fffffffe458) at
    main.c:181

Also, rename the property to match the naming convention of other
properties in the same object.
2018-09-12 17:15:46 +00:00
Alfonso Sánchez-Beato e3c2f0e9cc broadband-modem: set flow control from port
Set the flow control used in the data connection from the one
set in the port.
2018-09-12 17:15:46 +00:00
Alfonso Sánchez-Beato 94879ce1ce base-modem,port-probe: set serial port flow control from udev tag
Set the serial port flow control from the udev tag
ID_MM_TTY_FLOW_CONTROL before accessing the port.
2018-09-12 17:15:46 +00:00
Alfonso Sánchez-Beato 4e69c10c2d port-serial: add flow control property
Add flow control property to the MMPortSerial class, and use it when
setting the port flow control.
2018-09-12 17:15:46 +00:00
Alfonso Sánchez-Beato a1c27bf89d modem-helpers: add flow control udev tag parser
Add function for parsing the content of the udev tag
ID_MM_TTY_FLOW_CONTROL.
2018-09-12 17:15:46 +00:00
Aleksander Morgado bc407a38d6 mmcli,location: print LAC/TAC/CID in hex
All these values are usually specified in hex, not in dec.
2018-09-12 17:15:13 +00:00
Aleksander Morgado 6e84f3d459 iface-modem-location: validate SUPL server address
Devices will expect SUPL server given as either IP:PORT or FQDN:PORT,
so just avoid saying we require a 'URL' because it's not true.

We will use a new helper method to parse and validate user-provided
SUPL server address.
2018-09-12 17:14:36 +00:00
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