aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-02-15quectel: disable periodic signal checks in MBIM modemsAleksander Morgado
2024-02-15telit: disable periodic signal checks in MBIM modemsAleksander Morgado
2024-02-14.gitignore: ignore Visual Studio Code directory and fileYegor Yefremov
2024-02-12plugins: mtk: Added MT6229 USB modem support.RICCIARDI-Adrien
This modem is used for instance on the CAT B100 phone. Signed-off-by: RICCIARDI-Adrien <adrien.ricciardi@hotmail.fr>
2024-02-08iface-modem: also run disable on failed low power mode updateAleksander Morgado
If the user requested to set the modem in low power mode while enabled, the user is also expecting the device to be implicitly disabled. If for any reason setting the modem to low power mode fails (e.g. it could be not supported by the device), we should still try to run the modem disabling sequence, as that is the expectation.
2024-02-07broadband-modem-qmi: change operator description priorityFlorian Eckert
If an IoT SIM card is used, the service name is always used as the operator description. This is not what is expected. Therefore the priority is changed with this commit, so that the long name is tried to be set first, then the short name and finally the service name. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-02-07broadband-modem-qmi: add debug messages on operator description setFlorian Eckert
With the current implementation it was not possible to find out which operator description is now exactly used. By adding a log message, it is now clear which operator description is now set. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-02-01broadband-modem-mbim: use MBIMEx to list profiles unconditionally if availableAleksander Morgado
We currently don't use the MBIMEx profile management operations by default because the way profiles are managed is different (i.e. profile id as index vs context type as index). Still, when listing profile contents, we can use the MBIMEx operation if supported, because it gives us much more information than the original MBIM command, including IP type and profile source.
2024-02-01broadband-modem-mbim: don't ignore profiles with "none" context typeAleksander Morgado
2024-02-01libmm-glib,3gpp-profile: fix loading roaming allowance in DBus dictionaryAleksander Morgado
2024-02-01libmm-glib,3gpp-profile: fix loading profile source in DBus dictionaryAleksander Morgado
2024-02-01broadband-modem-mbim: fix processing IP type from ↵Aleksander Morgado
MbimProvisionedContextElementV2
2024-01-30build: fix fs.copyfile usage for meson versions 0.64/0.64.1Yegor Yefremov
Though this function was introduced in 0.64, its usage with install_dir was broken till meson version 1.0.0. Hence, bump the minimal required meson version for the fs.copyfile() routine. See the following meson commit for details: https://github.com/mesonbuild/meson/commit/100456de0761ee949e2277c97746cb8571b6ba39
2024-01-29build: unstable release version bump to 1.23.3Aleksander Morgado
2024-01-26broadband-modem-qmi: refactor power update into a state machineAleksander Morgado
The logic implementing the operating mode update is composed of multiple steps, some of which need to be skipped depending on previous state. Switch the logic to a state machine with a clear step enumeration indicating the order of the updates.
2024-01-26broadband-modem-qmi: don't complete the power update before receiving the ↵Aleksander Morgado
response When relying on the power update indications, we were completing the operation as soon as the indication was received, regardless of whether the request response was received or not. Avoid doing that, and instead complete the operation only when both indication and the response are received. This avoid misalignment in the operation completion if a new one is scheduled just after the one we have completed.
2024-01-26broadband-modem-qmi: use autoptr to manage self pointer in power update ↵Aleksander Morgado
operation
2024-01-26broadband-modem-qmi: keep power operation ongoing until fully finishedAleksander Morgado
The GTask stored in the private modem struct indicates whether a power update operation is ongoing. We should keep this task stored always until just before completing the GTask. We also make sure that any additional step (e.g. disabling DMS event report indications) is included in the power update operation, so that they are correctly synchronized also in the modem. This fix should solve a crash triggered by a DMS event report indication being received while setting up the next power update operation. 0x0000007aa67de878 (libc.so.6 + 0x0007e878) pthread_key_delete 0x0000007aa6799d28 (libc.so.6 + 0x00039d28) gsignal 0x0000007aa6786e2c (libc.so.6 + 0x00026e2c) abort 0x0000007aa6feb188 (libglib-2.0.so.0 - gtestutils.c: 3256) g_assertion_message 0x0000007aa6feb1f8 (libglib-2.0.so.0 - gtestutils.c: 3282) g_assertion_message_expr 0x0000005a58199b7c (ModemManager - mm-broadband-modem-qmi.c: 1926) dms_set_event_report_operating_mode_activate_ready 0x0000007aa6e4b7a0 (libgio-2.0.so.0 - gtask.c: 1232) g_task_return_now 0x0000007aa6e4a6b0 (libgio-2.0.so.0 - gtask.c: 1301) g_task_return 0x0000007aa6b58400 (libqmi-glib.so.5 - qmi-dms.c: 32600) set_event_report_ready 0x0000007aa6e3642c (libgio-2.0.so.0 - gsimpleasyncresult.c: 804) g_simple_async_result_complete 0x0000007aa6e36538 (libgio-2.0.so.0 - gsimpleasyncresult.c: 816) complete_in_idle_cb 0x0000007aa6fc6390 (libglib-2.0.so.0 - gmain.c: 3444) g_main_context_dispatch 0x0000007aa6fc66c4 (libglib-2.0.so.0 - gmain.c: 4238) g_main_context_iterate 0x0000007aa6fc6a34 (libglib-2.0.so.0 - gmain.c: 4438) g_main_loop_run 0x0000005a58119274 (ModemManager - main.c: 221) main 0x0000007aa67870f8 (libc.so.6 + 0x000270f8) __libc_init_first 0x0000007aa67871c8 (libc.so.6 + 0x000271c8) __libc_start_main 0x0000005a58118aec (ModemManager + 0x000a8aec) _start
2024-01-25bearer-mbim: When an IP type is unspecified in the profile, default to ↵Madhav
IPv4v6 (dual-stack) To address limitations in reading IP_TYPE information (in some cases) for profile requests, default to IPv4v6 (dual-stack) for profile requests and IPv4 only for user requests (to ensure backward compatibility) if nothing specific is requested. This ensures network compatibility across IPv4 and IPv6 networks, preventing potential connectivity issues in IPv6 environments.
2024-01-25iface-modem: allow low-power request while enabledAleksander Morgado
We now enable low-power mode request if we are enabled or even connected. In this case, an explicit modem disable operation is run, so that we don't end up with an enabled modem in low-power mode. This new "low-power+disable" single operation makes the two "disable+low-power" operation combo that was run until now much much quicker, because the modem unregisters from the network and disconnects PDNs in the same network interaction.
2024-01-25cinterion: swap local and dynamic PDP context commandLukas Voegl
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2024-01-25cinterion: default to none authentication with no user and passwordLukas Voegl
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2024-01-25build: add maintainers to README copyrightAleksander Morgado
2024-01-25build: convert README to markdownYegor Yefremov
Also add SPDX license identifier and a copyright notice.
2024-01-25cinterion: change secondary port to ppp on PLS8Lukas Voegl
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2024-01-25port-qmi: allow preallocated links when using rmnet multiplexingAleksander Morgado
A new ID_MM_QMI_PREALLOCATED_LINKS udev tag, set in the NET port of the device, allows configuring the amount of preallocated multiplexed links that need to be created upon the first connection attempt, regardless of the multiplexing setup method used. If not specified by the user, 4 preallocated links are created when using the qmi_wwan multiplexing procedure, and none for rmnet. Previously, using preallocated links was exclusive used with the qmi_wwan multiplexing procedure. Using preallocated links may be useful if you want to maintain the same links across multiple connection and disconnection loops, e.g. if running a tcpdump on a given link interface capturing all traffic (not using preallocated links in this case would be problematic as tcpdump cannot be requested to run on net interfaces that don't exist yet).
2024-01-25port-qmi: use a single method to set all initial net port detailsAleksander Morgado
2024-01-25port-qmi: fix double free when WDA Set Data Format failsAleksander Morgado
Thread 0(id: 4915) CRASHED [ SIGABRT@0x0000000000000000 ] 0x00007b0f6732fa3f (libc.so.6 - pthread_kill.c: 44) __pthread_kill_implementation 0x00007b0f672e4c6c (libc.so.6 - raise.c: 26) raise 0x00007b0f672d0462 (libc.so.6 - abort.c: 79) abort 0x00007b0f67323347 (libc.so.6 - libc_fatal.c: 155) __libc_message 0x00007b0f67339929 (libc.so.6 - malloc.c: 5664) malloc_printerr 0x00007b0f6733b5cb (libc.so.6 - malloc.c: 4439) _int_free 0x00007b0f6733e279 (libc.so.6 - malloc.c: 3391) __libc_free 0x00007b0f67abcabe (libglib-2.0.so.0 - gerror.c: 856) g_error_free 0x000059fc4262623e (ModemManager - glib-autocleanups.h: 54) glib_autoptr_clear_GError 0x000059fc4262623e (ModemManager - glib-autocleanups.h: 54) glib_autoptr_cleanup_GError 0x000059fc4262623e (ModemManager - mm-port-qmi.c: 1501) set_data_format_ready 0x00007b0f67985e57 (libgio-2.0.so.0 - gtask.c: 1309) g_task_return_now 0x00007b0f67984e21 (libgio-2.0.so.0 - gtask.c: 1378) g_task_return 0x00007b0f677f7107 (libqmi-glib.so.5 - qmi-wda.c: 4761) set_data_format_ready 0x00007b0f67972329 (libgio-2.0.so.0 - gsimpleasyncresult.c: 804) g_simple_async_result_complete 0x00007b0f6797240a (libgio-2.0.so.0 - gsimpleasyncresult.c: 816) complete_in_idle_cb 0x00007b0f67ad17a4 (libglib-2.0.so.0 - gmain.c: 3460) g_main_dispatch 0x00007b0f67ad17a4 (libglib-2.0.so.0 - gmain.c: 4200) g_main_context_dispatch 0x00007b0f67ad1ac3 (libglib-2.0.so.0 - gmain.c: 4276) g_main_context_iterate 0x00007b0f67ad1d41 (libglib-2.0.so.0 - gmain.c: 4479) g_main_loop_run 0x000059fc425657df (ModemManager - main.c: 236) main 0x00007b0f672d06c5 (libc.so.6 - libc_start_call_main.h: 58) __libc_start_call_main 0x00007b0f672d0781 (libc.so.6 - libc-start.c: 389) __libc_start_main_impl 0x000059fc42565130 (ModemManager) _start 0x00007fffdea098c7
2024-01-19cinterion: switch primary and secondary port for PLS8Lukas Voegl
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2024-01-15build: fix ModemManager-names.h generation warningYegor Yefremov
Use configure_file() instead of custom_target(). This resolves the following warning: WARNING: Source item '/home/user/ModemManager/header-generator.xsl' cannot be converted to File object, because it is a generated file. This will become a hard error in the future.
2024-01-15build: resolve deprecated 'copy' key argument in configure_file warningYegor Yefremov
Resolves the following warning: NOTICE: Future-deprecated features used: * 0.64.0: {'copy arg in configure_file'} copy arg was deprecated in meson version 0.64. Hence, use fs.copyfile() that is also introduced in 0.64, in versions since 0.64 and use the old approach for older versions.
2024-01-11iface-modem: ensure power state updates are spaced in timeAleksander Morgado
This change is an attempt to behave a bit better with modems when multiple consecutive enable/full-power/disable/low-power operations are scheduled in a modem. MM will automatically throttle these requests so that the power state updates are spaced in time, with at least 2 full seconds between them.
2024-01-11iface-modem: do not setup carrier config if eSIM without profilesAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/802
2024-01-10broadband-modem-mbim: Fix detection of modem unlockingMichal Mazur
When the modem is unlocked, the value of PIN type changes but the PIN state is still LOCKED because PIN2 lock is always active. (fixes commit 6359cc93fe84fbb6084285498b007fe2e652e9e1)
2024-01-1099-log-event: add double quote to silence SC2086 warningYegor Yefremov
SC2086 suggests using double quote to to prevent globbing and word splitting.
2023-12-18build: add EditorConfig configuration fileYegor Yefremov
EditorConfig projects helps maintaining consistent coding styles across various editors and IDEs.
2023-12-18.gitignore: ignore ctags tags fileYegor Yefremov
2023-12-18broadband-modem-mbim: Detect change in carrier lock stateMichal Mazur
Detection of carrier lock change is required to notify upper layers when the modem gets locked to specific network or unlocked. Previous implementation was removed because it caused modem reprobe every time the SIM card was unlocked (19fd9c634b8f2876694d18a77a3b686a0c08bf34).
2023-12-13build: unstable release version bump to 1.23.2Aleksander Morgado
2023-12-13fibocom: re-enable the modem after an attempt to set initial EPS bearer ↵Nagi Marupaka
irrespective of success or failure of the operation
2023-12-12mm-sms-properties: document mm_sms_properties_set_validity_relative ()Chris Talbot
2023-12-12api,introspection: added notes about ProfileManager.Updated() reliabilityAleksander Morgado
2023-12-12Revert "broadband-modem-qmi: ignore our own profile changed indications"Aleksander Morgado
This reverts commit cc78a6439f71e3f58b97972d171b966a42476a98. Ignoring profile updates for 100ms after our own updates is now implemented in a generic way for all protocols, not just for QMI.
2023-12-12Revert "broadband-modem-qmi: ignore profile updates during 100ms after our ↵Aleksander Morgado
own updates" This reverts commit f96664a159ebcff922e7d9fad170deefe65d1762. Ignoring profile updates for 100ms after our own updates is now implemented in a generic way for all protocols, not just for QMI.
2023-12-12iface-modem-3gpp-profile-manager: support ignoring update requests during ↵Aleksander Morgado
our own operations
2023-12-12iface-modem-3gpp-profile-manager: reorder codeAleksander Morgado
2023-12-12base-manager: allow using the low power modem setting with quick suspend/resumeAleksander Morgado
Kind of defeats the purpose of the quick suspend/resume, but I can see how this could be useful. E.g. in ChromeOS the modems are put in low power mode during suspend (triggered by the connection manager) and the quick suspend/resume is also enabled by default for a quicker resume process that doesn't involve full modem reprobe.
2023-12-12base-manager: new '--test-low-power-suspend-resume' optionAleksander Morgado
Will request to put the modems in low power mode upon system suspend. Based on an earlier approach from Jack Song and Nero Zhang, see https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1050
2023-12-11iface-location: allow enabling without SIMRaphaël Jakse
When the modem is in a failed state because of a SIM-related error, like a missing SIM, or if the modem is SIM-locked, allow the Location interface to initialize and be enabled anyway. This allows someone without a SIM to use the GPS, which does not particularly require a phone subscription. It also allows someone with a SIM to use the GPS even if the SIM is still locked. This patch was reworked, while keeping the original idea, by: Aleksander Morgado <aleksander@aleksander.es> Fixes #183
2023-12-01Revert "base-manager: add support to put modem in low power mode during suspend"mainAleksander Morgado
This reverts commit 23033217de26fb91734fed3b999173f151195040. This was mixed up in the wrong branch.