aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-10-15telit: prefer qmi for load_supported_bands if availableDaniele Palmas
2021-10-15telit: Detect 4G BND format from BND test replyCarlo Lobrano
Telit modems that require hexadecimal number when specifying 4G bands also reply to #BND=? command with a 4th parameter <LTE_band_ext> (e.g. LM940, LM960, LN920, FN980). On the other hand, modems that require decimal number when specifying 4G bands only return 3 parameters to the same command. It is then possible replace the detection of ext_4g_bands via UDEV tags with an inspection of BND=? reply.
2021-10-15telit: LN920 bands supportAmol Lad
2021-10-15foxconn: add T99W265 modules, support for QDU.Freedom Liu
2021-10-14cli,signal: fix error message without EOLAleksander Morgado
2021-10-14qcom-soc: require udev tag for portsAleksander Morgado
Since the 'wwan' subsystem addition to the qcom-soc plugin, the rules to say a modem is handled by this plugin are too broad, and the plugin attempts to support any kind of device exposed by the WWAN subsystem, not just those from Qualcomm SoCs. Update the plugin to require a new ID_MM_QCOM_SOC udev tag that is set in the plugin udev rules, given that these rules already check for the expected SoC drivers (bam-dmux, ipa, qcom-q6v5-mss).
2021-10-14Revert "ci: temporarily build single plugins on merge requests"Aleksander Morgado
This reverts commit 18b8a3c78404dfd55d75770884bbca273e8b07ef. We no longer need this, back to only on schedules.
2021-10-14ci: temporarily build single plugins on merge requestsAleksander Morgado
2021-10-14ci: switch single plugins build to use mesonAleksander Morgado
2021-10-14build,meson: Add an empty line to split includes and dependenciesIñigo Martínez
2021-10-14build,meson: Remove unnecessary empty lineIñigo Martínez
2021-10-14build,meson: Make use of _opt suffix for option variablesIñigo Martínez
To make option names consistent, an `_opt` suffix has been added. This was not applied to `polkit` option at the time and this is fixed now.
2021-10-14build,meson: Make use of partial_dependency for generated dependencyIñigo Martínez
The generated objects in `libmm-glib` are include in `libmm_glib_dep` one by one to avoid the link to the generated library that is included as a whole in `libmm-glib`. meson includes a way to include partial objects of a dependency by using the `partial_dependency` method, so by taking advantage of it almost all objects are included.
2021-10-14build,meson: Sort files alphabeticallyIñigo Martínez
2021-10-14build,meson: Remove unused optionIñigo Martínez
2021-10-14build,meson: Improve plugins option setIñigo Martínez
Improved the way the plugins are set to allow a smaller summary.
2021-10-13broadband-modem-qmi: fix non-initialized GErrorAleksander Morgado
2021-10-13quectel: fix non-initialized GErrorAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/442
2021-10-13broadband-modem-mbim: coding style fixes in the SAR implementationAleksander Morgado
2021-10-13broadband-modem-mbim: use a dynamically allocated MbimSarConfigStateAleksander Morgado
It makes reading the code a bit easier.
2021-10-13iface-modem-sar: fix initialization sequence completionAleksander Morgado
We cannot just return without completing the GTask. If we see the support check method failed, just keep on with the state machine so that the GTask is completed in the FAIL_IF_UNSUPPORTED step. Also, don't assume GError is set if FALSE is returned. This is the only kind of async method where we allow this right now.
2021-10-13mmcli,sar: rename actions to just --sar-enable and --sar-disableAleksander Morgado
2021-10-13broadband-modem-mbim: implement the sar interfaceJack Song
2021-10-13broadband-modem: add the sar interfacelvmaorui
2021-10-13build,meson: add SAR interface support in the daemonAleksander Morgado
2021-10-13iface-modem-sar: new `MMIfaceModemSar` interfacelvmaorui
2021-10-13build,meson: add SAR interface support in mmcliAleksander Morgado
2021-10-13mmcli:add SAR command --sar-status/--sar-enable/--sar-disable/--set-power-levellvmaorui
2021-10-13build,meson: add SAR interface support in libmm-glibAleksander Morgado
2021-10-13docs,libmm-glib: add SAR user-level apilvmaorui
2021-10-13mm-broadband-modem-mbim: treat NO_ESIM_PROFILE as failureAleksander Morgado
2021-10-13build: bump libmbim version to use NO_ESIM_PROFILEAleksander Morgado
2021-10-13build: sync libqmi and libmbim versions in meson buildAleksander Morgado
Fixes f5168cb54b01c353b813476db0f9b3f175560c4a
2021-10-11iface-modem: Allow SetPowerState(Low|On) on failed stateAndrew Lassalle
In some modems, the modem's radio can be ON when no SIM card is present. In this case, the modem is in failed state, and the host cannot set the power state to LOW. Since we we will allow the host to set the power to LOW, we should allow it to set it back to ON.
2021-10-11telit: add port type hints for LN920 0x1060, 0x1061 compositionsDaniele Palmas
2021-10-11telit: fix typo in load_supported_modes_readyDaniele Palmas
2021-10-11telit: fix segmentation fault in initialize_alternate_3g_bandDaniele Palmas
Fix the following segmentation fault: ModemManager[128007]: mm_port_peek_kernel_device: assertion 'MM_IS_PORT (self)' failed Thread 1 "ModemManager" received signal SIGSEGV, Segmentation fault. 0x00005555556c6e3e in mm_kernel_device_get_global_property (self=0x0, property=0x7ffff5947480 "ID_MM_TELIT_BND_ALTERNATE") at kerneldevice/mm-kernel-device.c:309 Reported by Carlo Lobrano <c.lobrano@gmail.com>
2021-10-11api: new TDS capabilityDaniele Palmas
2021-10-11modem-helpers: change deprecated MBIM_NW_ERROR_UNKNOWN to MBIM_NW_ERROR_NONEDaniele Palmas
2021-10-11build: libqmi and libmbim version bumpsAleksander Morgado
In order to use the latest symbols exposed (MBIM_NW_ERROR_NONE and QMI_DMS_RADIO_INTERFACE_TDS).
2021-10-04mm-bearer-mbim: unref not needed and it is causing crashAmol Lad
2021-10-03Update signal strength indicator thresholdsFrederic Martinsons
These are thresholds for RSSI so nothing is expected to be greater than 0. This will allow to have a better granularity (even if with some modem, we are limited in the number of thresholds configured) These new thresholds will give the following signal quality range: - 11% for -110 dBm - 30% for -94 dBm - 50% for -82 dBm - 70% for -69 dBm - 90% for -57 dBm We are expecting to receive indication sreport every time the signal strength crosses one of the configured thresholds. Signed-off-by: Frederic Martinsons <frederic.martinsons@sigfox.com>
2021-10-03iface-modem-3gpp-profile-manager: correct a GError instance ownershipLubomir Rintel
The call to g_task_return_error() takes ownership of the GError passed to it; we must not free it ourselves upon automatic pointer cleanup. Otherwise a crash can be triggered in the error handling path: ModemManager[259816]: <debug> [1633088468.157848] [modem0/modemu/at] <-- '<CR><LF>OK<CR><LF>' ModemManager[259816]: <debug> [1633088468.159832] [modem0] stored profile with id '1' ModemManager[259816]: <debug> [1633088468.160501] [modem0] set profile state (7/8): list after ModemManager[259816]: <debug> [1633088468.161686] [modem0/modemu/at] device open count is 3 (open) ModemManager[259816]: <debug> [1633088468.162320] [modem0/modemu/at] device open count is 2 (close) ModemManager[259816]: <debug> [1633088468.162746] [modem0/modemu/at] --> 'AT+CGDCONT?<CR>' ModemManager[259816]: <debug> [1633088468.177437] [modem0/modemu/at] <-- '<CR><LF>ERROR<CR><LF>' ModemManager[259816]: <debug> [1633088468.178011] [modem0/modemu/at] operation failure: 100 (Unknown error) ModemManager[259816]: <warn> [1633088468.182420] [modem0/bearer0] connection attempt #1 failed: Couldn't validate update of profile '1': Unknown error ModemManager[259816]: <info> [1633088468.193156] [modem0/bearer0] connection #1 finished: duration 0s, tx: 0 bytes, rx: 0 bytes ModemManager[259816]: <debug> [1633088468.194280] [modem0] couldn't connect bearer: Couldn't validate update of profile '1': Unknown error ==259816== Invalid read of size 4 ==259816== at 0x4FF66CF: UnknownInlinedFun (gerror.c:535) ==259816== by 0x4FF66CF: g_error_free (gerror.c:832) ==259816== by 0x1A7F49: UnknownInlinedFun (glib-autocleanups.h:52) ==259816== by 0x1A7F49: UnknownInlinedFun (glib-autocleanups.h:52) ==259816== by 0x1A7F49: profile_manager_get_profile_after_ready (mm-iface-modem-3gpp-profile-manager.c:140) ==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219) ==259816== by 0x4E344CA: UnknownInlinedFun (gtask.c:1289) ==259816== by 0x4E344CA: g_task_return (gtask.c:1245) ==259816== by 0x1A867C: get_profile_list_ready (mm-iface-modem-3gpp-profile-manager.c:680) ==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219) ==259816== by 0x4E344CA: UnknownInlinedFun (gtask.c:1289) ==259816== by 0x4E344CA: g_task_return (gtask.c:1245) ==259816== by 0x1A3DB5: internal_list_profiles_ready (mm-iface-modem-3gpp-profile-manager.c:774) ==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219) ==259816== by 0x4E344CA: UnknownInlinedFun (gtask.c:1289) ==259816== by 0x4E344CA: g_task_return (gtask.c:1245) ==259816== by 0x1D7B8B: profile_manager_cgdcont_query_ready (mm-broadband-modem.c:10240) ==259816== by 0x4E1DB61: g_simple_async_result_complete (gsimpleasyncresult.c:802) ==259816== Address 0x9286da0 is 0 bytes inside a block of size 16 free'd ==259816== at 0x48440E4: free (vg_replace_malloc.c:755) ==259816== by 0x500FD1C: g_free (gmem.c:199) ==259816== by 0x502A22F: g_slice_free1 (gslice.c:1180) ==259816== by 0x4FF6780: g_error_free (gerror.c:864) ==259816== by 0x1B22D2: connect_bearer_ready (mm-iface-modem-simple.c:286) ==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219) ==259816== by 0x4E344CA: UnknownInlinedFun (gtask.c:1289) ==259816== by 0x4E344CA: g_task_return (gtask.c:1245) ==259816== by 0x18031A: connect_ready (mm-base-bearer.c:917) ==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219) ==259816== by 0x4E344CA: UnknownInlinedFun (gtask.c:1289) ==259816== by 0x4E344CA: g_task_return (gtask.c:1245) ==259816== by 0x18329B: connect_3gpp_ready (mm-broadband-bearer.c:918) ==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219) ==259816== Block was alloc'd at ==259816== at 0x484186F: malloc (vg_replace_malloc.c:380) ==259816== by 0x5013408: g_malloc (gmem.c:106) ==259816== by 0x502ACB4: g_slice_alloc (gslice.c:1069) ==259816== by 0x502B33D: g_slice_alloc0 (gslice.c:1095) ==259816== by 0x4FF64E6: g_error_allocate (gerror.c:702) ==259816== by 0x4FF6F03: UnknownInlinedFun (gerror.c:716) ==259816== by 0x4FF6F03: g_error_copy (gerror.c:886) ==259816== by 0x4E1D0A0: g_simple_async_result_set_from_error (gsimpleasyncresult.c:676) ==259816== by 0x236AAB: port_serial_got_response (mm-port-serial.c:744) ==259816== by 0x23B0F1: UnknownInlinedFun (mm-port-serial.c:934) ==259816== by 0x23B0F1: common_input_available (mm-port-serial.c:1035) ==259816== by 0x500AF9E: UnknownInlinedFun (gmain.c:3337) ==259816== by 0x500AF9E: g_main_context_dispatch (gmain.c:4055) ==259816== by 0x505F607: g_main_context_iterate.constprop.0 (gmain.c:4131) ==259816== by 0x500A562: g_main_loop_run (gmain.c:4329)
2021-10-03broadband-modem: ensure mm_broadband_modem_create_device_identifier() sets ↵Lubomir Rintel
an error on all bad returns modem_load_device_identifier_finish() expect it to do so and trips an assertion failure in g_propagate_error(): ModemManager[256038]: <warn> [1633083601.491190] [modem0] couldn't load equipment identifier: Unknown error ModemManager[256038]: <debug> [1633083601.491204] [modem0] loading device identifier... ModemManager[256038]: <debug> [1633083601.491215] [modem0/modemu/at] device open count is 3 (open) ModemManager[256038]: <debug> [1633083601.491231] [modem0/modemu/at] device open count is 2 (close) ModemManager[256038]: <debug> [1633083601.491254] [modem0/modemu/at] --> 'ATI<CR>' ModemManager[256038]: <debug> [1633083601.494616] [modem0/modemu/at] <-- '<CR><LF>ERROR<CR><LF>' ModemManager[256038]: <debug> [1633083601.494643] [modem0/modemu/at] operation failure: 100 (Unknown error) (ModemManager:256038): GLib-CRITICAL **: 06:20:01.494: g_propagate_error: assertion 'src != NULL' failed Thread 1 "ModemManager" received signal SIGTRAP, Trace/breakpoint trap. g_logv (log_domain=0x7ffff77d1071 "GLib", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../glib/gmessages.c:1413 1413 g_private_set (&g_log_depth, GUINT_TO_POINTER (depth)); Missing separate debuginfos, use: dnf debuginfo-install libmbim-1.26.0-2.el9.x86_64 libqmi-1.30.2-1.el9.x86_64 (gdb) bt #0 g_logv (log_domain=0x7ffff77d1071 "GLib", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../glib/gmessages.c:1413 #1 0x00007ffff77813d3 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at ../glib/gmessages.c:1451 #2 0x000055555561122d in modem_load_device_identifier_finish (self=0x5555557e62d0, res=<optimized out>, error=0x7fffffffd320) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-broadband-modem.c:1168 #3 0x00005555555ea69a in load_device_identifier_ready (self=0x5555557e62d0, res=0x5555557ea6b0, task=task@entry=0x7fffe8011e20 [GTask]) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-iface-modem.c:4727 #4 0x00007ffff7951b62 in g_simple_async_result_complete (simple=0x5555557ea6b0 [GSimpleAsyncResult]) at ../gio/gsimpleasyncresult.c:802 #5 0x00005555555d1b0a in at_sequence_parse_response (port=<optimized out>, res=<optimized out>, ctx=ctx@entry=0x5555557ed7f0) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-base-modem-at.c:250 #6 0x00007ffff7951b62 in g_simple_async_result_complete (simple=0x5555557e5440 [GSimpleAsyncResult]) at ../gio/gsimpleasyncresult.c:802 #7 0x00005555556805dc in serial_command_ready (port=<optimized out>, res=<optimized out>, simple=simple@entry=0x5555557e5440 [GSimpleAsyncResult]) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-port-serial-at.c:378 #8 0x00007ffff7951b62 in g_simple_async_result_complete (simple=0x5555557d6730 [GSimpleAsyncResult]) at ../gio/gsimpleasyncresult.c:802 #9 0x000055555567fb35 in command_context_complete_and_free (ctx=ctx@entry=0x7fffe800c200, idle=idle@entry=0) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-port-serial.c:141 #10 0x0000555555682a96 in port_serial_got_response (self=0x5555557dd4e0 [MMPortSerialAt], parsed_response=0x0, error=0x5555557d5040) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-port-serial.c:755 #11 0x00005555556870d2 in parse_response_buffer (self=<optimized out>) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-port-serial.c:934 #12 common_input_available (self=0x5555557dd4e0 [MMPortSerialAt], condition=(G_IO_NVAL | unknown: 0xf762a5c0)) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-port-serial.c:1035 #13 0x00007ffff7778f9f in g_main_dispatch (context=0x5555557527c0) at ../glib/gmain.c:3337 #14 g_main_context_dispatch (context=0x5555557527c0) at ../glib/gmain.c:4055 #15 0x00007ffff77cd608 in g_main_context_iterate.constprop.0 (context=0x5555557527c0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131 #16 0x00007ffff7778563 in g_main_loop_run (loop=0x55555576da60) at ../glib/gmain.c:4329 #17 0x00005555555b7b60 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/main.c:216
2021-10-03ci: bump image template to refresh CA certificatesAleksander Morgado
At the end of September 2021, Let's Encrypt's DST Root CA X3 certificate expired, and the new ISRG Root X1 took over. Update the CI template so that the new certificate is available and we can keep on cloning the libmbim/libqmi/libqrtr-glib repos without failures.
2021-09-29telit: fix g_object_unref failed assertionDaniele Palmas
Fix the following g_object_unref failed assertion: ModemManager[385967]: <debug> [1632924639.132023] [modem0/ttyUSB2/at] --> 'AT+CSIM=1<CR>' ModemManager[385967]: <debug> [1632924639.144892] [modem0/ttyUSB2/at] <-- '<CR><LF>ERROR<CR><LF>' ModemManager[385967]: <debug> [1632924639.145021] [modem0/ttyUSB2/at] operation failure: 100 (Unknown error) (ModemManager:385967): GLib-GObject-CRITICAL **: 16:10:39.145: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
2021-09-23sms: increase send timeout to 5 minutesBenoît Monin
The timeout for sms send operation can exceed the current value, so increase it to 5 minutes. Timeouts up to 4 minutes have been observed in the following test scenario: * Power up the modem and wait for registration. * Right when the modem is registered, attenuate the rf signal or remove the antenna. * Immediately try to send an sms. Increasing the timeout cover this corner case.
2021-09-21modem-qmi,sim-qmi: read personalization retries from Card StatusMichal Mazur
2021-09-21modem-mbim: enter LOCKED state when SIM is incompatibleMichal Mazur
According to MBIM specification, the subscriber state is INITIALIZED when SIM card is incompatible with enabled modem personalization lock. This patch introduce additional check for enabled PIN lock in such case and fixes depersonalization of one lock if several are enabled.
2021-09-20.gitignore: ignore ctags tags fileYegor Yefremov