The process_get_all_call_info() was not completing the input GTask on
every possible code path (e.g. when remote party number or call info
wasn't available).
The method is now updated to avoid processing the GTask itself,
instead it will attempt to build the call list and return a GError on
any kind of failure.
Enable AT URCs for calls on top of QMI Voice indications
for AT+QMI devices only. Some AT+QMI devices send unreliable
QMI indications when the host is resuming. In such cases,
AT URCs can be used as a fall back to make calls reliable.
While AT+QMI devices relied before on AT commands to load
call list information and handle AT URCs for async updates,
this is now handled through QMI by forcefully reloading the
call list instead of processing the AT URCs.
This approach is disabled by default through the
MM_IFACE_MODEM_VOICE_INDICATION_CALL_LIST_RELOAD_ENABLED property.
This property is set to true in case of QMI modems.
../test/lsudev.c: In function ‘println’:
../test/lsudev.c:68:5: warning: function ‘println’ might be a candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format]
68 | g_string_append_vprintf (output, fmt, args);
| ^~~~~~~~~~~~~~~~~~~~~~~
Conveniently warned by the compiler...
../libmm-glib/mm-3gpp-profile.c: In function ‘mm_3gpp_profile_cmp’:
../libmm-glib/mm-3gpp-profile.c:98:1: warning: control reaches end of non-void function [-Wreturn-type]
98 | }
| ^
../libmm-glib/mm-simple-status.c: In function ‘mm_simple_status_new_from_dictionary’:
../libmm-glib/mm-simple-status.c:426:21: warning: declaration of ‘properties’ shadows a global declaration [-Wshadow]
426 | MMSimpleStatus *properties;
| ^~~~~~~~~~
../libmm-glib/mm-simple-status.c:55:20: note: shadowed declaration is here
55 | static GParamSpec *properties[PROP_LAST];
| ^~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:50,
from ../libmm-glib/mm-common-helpers.h:18,
from ../libmm-glib/mm-manager.c:27:
/usr/include/glib-2.0/glib/ghash.h:68:61: note: expected ‘gpointer’ {aka ‘void *’} but argument is of type ‘const char *’
68 | gpointer key,
| ~~~~~~~~~~~~~~~~^~~
../libmm-glib/mm-manager.c:81:43: warning: passing argument 2 of ‘g_hash_table_insert’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
81 | g_hash_table_insert (lookup_hash, "org.freedesktop.ModemManager1.Modem.Simple", GSIZE_TO_POINTER (MM_TYPE_MODEM_SIMPLE));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:50,
from ../libmm-glib/mm-common-helpers.h:18,
from ../libmm-glib/mm-manager.c:27:
We have several symbols defined as floating point numbers that
identify "unknown" values, e.g. MM_LOCATION_LONGITUDE_UNKNOWN. We want
to be able to compare with those values directly, even if they're
floats.
meson is a build system focused on speed an ease of use, which
helps speeding up the software development. This patch adds meson
support along autotools.
Multi-sentence NMEA messages were printed as is, that is with
linebreaks, which made mmcli --location-get output look broken.
Split NMEA sentences with linebreaks to separate output list items, so
that they line up correctly.
Fixes the regexp in check_append_or_replace() to accept
1. more multi-sentence NMEA messages (ALM, GSV, RTE, SFI)
2. multi-sentence NMEA messages from all talkers, not just GPS
(i.e. GPGSV, GLGSV, GAGSV etc.)
The maximum MTU that the master interface can support should be less
or equal than RMNET_MAX_PACKET_SIZE, as defined in the
`rmnet_private.h` file in the linux sources (not a public header).
Only applicable to RMNET link management (i.e. not to qmi_wwan
add_mux/del_mux).
Fixes https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/issues/71
When not requesting multiplexing support, only assume we don't need
any additional setup if multiplexing is disabled AND if the data modes
match between kernel and device.
This fixes the connection setup in MSM8916 (rpmsg+bam/dmux).
The new option will change the default setting in MBIM and QMI bearers
to "request" when no explicit "multiplex" configuration is given by
the user.
This option will help test the multiplexing support in the modems
before it's made a default in a future release.
The next 1.18 release will have multiplexing support, but not enabled
by default, to avoid breaking setups that don't expect the new virtual
net interfaces for the multiplexed sessions.
The exception is Qualcomm SoCs using the IPA driver, where
multiplexing is fully required.
The next 1.18 release will have multiplexing support, but not enabled
by default, to avoid breaking setups that don't expect the new virtual
net interfaces for the multiplexed sessions.
Using "requested" as a common default for every possible
implementation works, because it can handle setups without
multiplexing capabilities (e.g. plain AT+PPP modems) and also setups
without non-multiplexing capabilities (e.g. IPA based SoCs).
But if we don't want "requested" as default, then there will be
failing cases; e.g. we cannot use "none" as default for all as it
would break IPA, and we cannot use "required" as default for all as it
would break AT+PPP setups.
So, remove the common default, it's not flexible enough.
In IPA based setups, there are only multiplexed bearers supported,
there is no way to not enable multiplexing.
We change the logic that computes the maximum number of multiplexed
and non-multiplexed bearers, so that we check which are the current
kernel data modes before computing them.
Fixes warnings on AT+PPP based devices:
ModemManager[602870]: <debug> [1626948725.168355] [modem0] allowed up to 1 active bearers
(ModemManager:602870): GLib-GObject-WARNING **: 12:12:05.185: value "0" of type 'guint' is invalid or out of range for property 'max-active-multiplexed-bearers' of type 'guint'