aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-09-27broadband-modem-qmi: select last used level when enabling SARAleksander Morgado
Same as we do in the MBIM protocol implementation.
2022-09-27iface-modem-sar: report updated level on SAR enableAleksander Morgado
The SAR enable operation may be selecting an explicit SAR level by itself, so make sure the protocol implementation reports back to the interface the default level that was used while enabling SAR. No level change is reported in the interface if the SAR is being disabled.
2022-09-27iface-modem-sar: avoid changing level if already in the target levelAleksander Morgado
2022-09-27iface-modem-sar: avoid changing state if already in the target stateAleksander Morgado
2022-09-27iface-modem-sar: disallow changing SAR level if SAR disabledAleksander Morgado
This was already forbidden in the MBIM implementation, and we should also have it in the QMI implementation, so just make it a generic check in the interface.
2022-09-27iface-modem-sar: fix set power level async method completionAleksander Morgado
Not a big deal because both enable_finish() and set_power_level() finish were doing the same thing until a recent change.
2022-09-27broadband-modem-qmi: attempt to preallocate SAR clientAleksander Morgado
Otherwise the SAR support check will fail.
2022-09-27broadband-modem-qmi: Implement the SAR interfaceMadhav
Implement the sar interface for QMI modems.
2022-09-26iface-modem-3gpp-profile-manager: fix requested IP type normalizationAleksander Morgado
mm_iface_modem_3gpp_profile_manager_set_profile() was changed so that the input profile object was not touched, and instead a copy of the same would be used within the method. Unfortunately, that change missed the update of the IP type normalization step, which would end up modifying the original settings instead of the newly created copy. Fixes 7464940971ded3d550217872b42fef9f3120b1bf
2022-09-20iface-modem-3gpp: helpers to check if specific domains are supportedAleksander Morgado
2022-09-20iface-modem-3gpp: allow applying domain registration updates altogetherAleksander Morgado
When processing QMI and MBIM messages to report domain registration updates, we should do that altogether so that we don't report bogus transitions to idle if the registration state switches from one domain to another. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/629
2022-09-20iface-modem-3gpp: fix clearing 5GS reg status if explicit registration failsAleksander Morgado
2022-09-19api,enums: added NGRAN-53 bandXiao Liyun
According to 3GPP Rel16.3, 38104, band NGRAN-53 is supported. Band info as below: n53 2483.5 MHz - 2495 MHz, TDD Signed-off-by: Slark Xiao <slark_xiao@163.com>
2022-09-19mm-iface-modem: don't attempt to check lock status when current active slot ↵Jack Song
have eSIM without profiles Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/630
2022-09-16enum, bearer: added non-ip bearerAlexey Orishko
2022-09-16enum,MMModemAccessTechnology: added Cat-M and NB-IoT LPWA access technologiesAlexey Orishko
2022-09-15foxconn: carrier mapping conf file shouldn't be executableAleksander Morgado
2022-09-15fibocom: source files shouldn't be executableAleksander Morgado
2022-09-13charsets: Add test_text_split_two_pdu_gsm7_extended_chars to use extended ↵Andrey Skvortsov
character
2022-09-13sms: fix spliting messages into chunks in gsm7 encodingAndrey Skvortsov
1) Not every allowed GSM7 character in UTF-8 incoding takes one byte. Some (for example, 'à') take several bytes in input string, but signle byte in GSM7. 2) Extended characters in GSM7 encoding take two bytes. Otherwise for example sending following SMS fails: ``` mmcli -m a --messaging-create-sms="text='[wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww',number='+XXXXXXXXXXX'" Successfully created new SMS: /org/freedesktop/ModemManager1/SMS/99 mmcli --send -s 99 error: couldn't send the SMS: 'GDBus.Error:org.freedesktop.libqmi.Error.Protocol.WmsEncoding: Couldn't write SMS part: QMI protocol error (58): 'WmsEncoding'' ``` ``` mmcli -m a --messaging-create-sms="text='|àààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààà',number='+XXXXXXXXXXX'" Successfully created new SMS: /org/freedesktop/ModemManager1/SMS/72 mmcli --send -s 72 error: couldn't send the SMS: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.InvalidArgs: Couldn't convert UTF-8 to GSM: input UTF-8 validation failed' ```
2022-09-13charsets: move mm_sms_part_3gpp_util_split_text to mm_charset_util_split_textAndrey Skvortsov
2022-09-12sim-mbim: implement loading GID1 and GID2 of active SIMAleksander Morgado
2022-09-12sim-mbim: preload id of active UICC applicationAleksander Morgado
This would be the application id that refers to the active SIM card.
2022-09-09mm-bearer-qmi: Add Support for PCOAkash Aggarwal
Get PCO information after the call is established by using get runtime settings request Register for Extended IP configuration Indication If PCO is changed we get the indication and refetch the pco information from modem Send the PCO info using 3gpp_update_pco_list
2022-09-08sim-mbim: minor coding style fixAleksander Morgado
2022-09-08quectel: add MM_PLUGIN_REQUIRED_QCDM flagIvan Mikhanchuk
EM120/160 uses QCDM port for firmware updates. fwupd lists all known ports from ModemManager and uses QCDM port to reboot the modem into the firmware download mode.
2022-09-08cinterion: add support thales PCIE vid(0x1269) in the cinterion.Fanice.luo
For SDX55 and SDX65 can identify the corrrect plugin(cinterion), and the plugin is updated to support the wwan subsystem.
2022-09-07modem-helpers-mbim: add new MBIM PIN typesAleksander Morgado
2022-09-07build: require libmbim 1.27.9 for the MBIM UICC file read supportAleksander Morgado
2022-09-05modem-helpers-ublox: rework +UIPADDR response parserAleksander Morgado
We setup all output variables with g_autofree and then use g_steal_pointer() to return the needed ones.
2022-09-05modem-helpers: rework the +CGEV indication parserAleksander Morgado
We setup all output variables with g_autofree and then use g_steal_pointer() to return the needed ones.
2022-09-05modem-helpers-cinterion: rework CNMI test response parserAleksander Morgado
We setup all output variables with g_autoptr() and then use g_steal_pointer() to return the needed ones.
2022-09-05modem-helpers: rework +CGCONTRDP response parserAleksander Morgado
We setup all output variables with g_autofree and then use g_steal_pointer() to return the needed ones.
2022-09-05core: port GRegex/GMatchInfo to use autoptr()Aleksander Morgado
The behavior of GRegex changed in 2.73.2 once it was ported from pcre1 to pcre2. In some cases it was made more strict, which is fine, in other cases it exposed some change in how it behaves on certain matches that is not extremely clear whether it's ok or not. See https://gitlab.gnome.org/GNOME/glib/-/issues/2729 See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/601 See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/621 Either way, one thing that was assumed was that initializing all GRegex/GMatchInfo variables to NULL and making sure they're NULL before they're initialized by glib (especially the GMatchInfo) was a good and safer approach. So, whenever possible, g_autoptr() is used to cleanup the allocated GMatchInfo/GRegex variables, and otherwise, g_clear_pointer() is used to ensure that no free/unref is attempted unless the given variable is not NULL, and also so that the variable is reseted to NULL after being disposed.
2022-09-05mm-broadband-modem-qmi: fix updating access technology and locationAkash Aggarwal
Access technology and location properties are updated if modem is in registered state. Cache and update them when processing DSD system status indication.
2022-09-05plugins,telit: add missing 4G BND HEX format modem modelsCarlo Lobrano
Currently, supported band AT query #BND=? is failing with LM9x0 because it expects BND 4G decimal format instead than hexadecimal. Adding also LN920 and FN980 for completeness. They do not fail right now because they have also "4g band extended" which format is always hexadecimal.
2022-09-02test-modem-helpers: add EOL to strings matched with G_REGEX_NEWLINE_CRLFAleksander Morgado
Looks like pcre2 (used since glib 2.73.2) requires EOLs to match if G_REGEX_NEWLINE_CRLF is explicitly used. The tests are updated accordingly, because the modem responses will anyway have the EOLs as well. See https://gitlab.gnome.org/GNOME/glib/-/issues/2729#note_1544130 Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/601
2022-09-01serial-parsers: fix invalid EXZ error parserAleksander Morgado
Passed undetected when glib2 was using pcre1, it triggers an error now with pcre2. See https://gitlab.gnome.org/GNOME/glib/-/issues/2729#note_1542038 Reported and fix suggested by: Marco Trevisan (Treviño) <mail@3v1n0.net>
2022-08-26mm-iface-modem-3gpp: fix packet service state updationAkash Aggarwal
Modem could be in 'registered' state if CS is 'attached', but packet service state might be 'detached'. Check if packet service state needs to be updated in update_registration_state(), even if registration state is same. Fixes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/618
2022-08-25sim-qmi: rework Read Transparent processing to use g_autoptr()Aleksander Morgado
2022-08-25sim-qmi: fix leak of the GArray containing the GIDAleksander Morgado
Fixes 3238ccdbb29e86acd2b3e5c0e45bee84f9da94b4
2022-08-25mm-log: hiding personal info while logging for QMI modemAkash Aggarwal
2022-08-25base-modem: fix double GError free during quick syncAleksander Morgado
==10719== Invalid free() / delete / delete[] / realloc() ==10719== at 0x4897D88: free (vg_replace_malloc.c:872) ==10719== by 0x52F091B: g_free (gmem.c:220) ==10719== by 0x530C36B: g_slice_free1 (gslice.c:1185) ==10719== by 0x52D632B: g_error_free (gerror.c:872) ==10719== by 0x192DBF: UnknownInlinedFun (glib-autocleanups.h:54) ==10719== by 0x192DBF: UnknownInlinedFun (glib-autocleanups.h:54) ==10719== by 0x192DBF: sync_ready (mm-base-modem.c:671) ==10719== by 0x50A82CB: g_task_return_now (gtask.c:1232) ==10719== by 0x50A854B: UnknownInlinedFun (gtask.c:1301) ==10719== by 0x50A854B: g_task_return (gtask.c:1258) ==10719== by 0x50AAA4F: g_task_return_new_error (gtask.c:1944) ==10719== by 0x1F44E3: iface_modem_sync_ready (mm-broadband-modem.c:12205) ==10719== by 0x50A82CB: g_task_return_now (gtask.c:1232) ==10719== by 0x50A854B: UnknownInlinedFun (gtask.c:1301) ==10719== by 0x50A854B: g_task_return (gtask.c:1258) ==10719== by 0x1AB86B: interface_syncing_step.lto_priv.0 (mm-iface-modem.c:4644) ==10719== Address 0x910bf30 is 0 bytes inside a block of size 16 free'd ==10719== at 0x4897D88: free (vg_replace_malloc.c:872) ==10719== by 0x52F091B: g_free (gmem.c:220) ==10719== by 0x530C36B: g_slice_free1 (gslice.c:1185) ==10719== by 0x52D632B: g_error_free (gerror.c:872) ==10719== by 0x17565F: UnknownInlinedFun (glib-autocleanups.h:54) ==10719== by 0x17565F: UnknownInlinedFun (glib-autocleanups.h:54) ==10719== by 0x17565F: base_modem_sync_ready (mm-base-manager.c:737) ==10719== by 0x50A82CB: g_task_return_now (gtask.c:1232) ==10719== by 0x50A854B: UnknownInlinedFun (gtask.c:1301) ==10719== by 0x50A854B: g_task_return (gtask.c:1258) ==10719== by 0x192DAB: sync_ready (mm-base-modem.c:674) ==10719== by 0x50A82CB: g_task_return_now (gtask.c:1232) ==10719== by 0x50A854B: UnknownInlinedFun (gtask.c:1301) ==10719== by 0x50A854B: g_task_return (gtask.c:1258) ==10719== by 0x50AAA4F: g_task_return_new_error (gtask.c:1944) ==10719== by 0x1F44E3: iface_modem_sync_ready (mm-broadband-modem.c:12205) ==10719== Block was alloc'd at ==10719== at 0x48952CC: malloc (vg_replace_malloc.c:381) ==10719== by 0x52F3EF3: g_malloc (gmem.c:127) ==10719== by 0x530CD27: g_slice_alloc (gslice.c:1074) ==10719== by 0x530D2B7: g_slice_alloc0 (gslice.c:1100) ==10719== by 0x52D5E7B: g_error_allocate (gerror.c:710) ==10719== by 0x52D690F: UnknownInlinedFun (gerror.c:724) ==10719== by 0x52D690F: g_error_new_valist (gerror.c:766) ==10719== by 0x50AAA43: g_task_return_new_error (gtask.c:1941) ==10719== by 0x1F44E3: iface_modem_sync_ready (mm-broadband-modem.c:12205) ==10719== by 0x50A82CB: g_task_return_now (gtask.c:1232) ==10719== by 0x50A854B: UnknownInlinedFun (gtask.c:1301) ==10719== by 0x50A854B: g_task_return (gtask.c:1258) ==10719== by 0x1AB86B: interface_syncing_step.lto_priv.0 (mm-iface-modem.c:4644) ==10719== by 0x1AB9A3: UnknownInlinedFun (mm-iface-modem.c:4543) ==10719== by 0x1AB9A3: interface_syncing_step.lto_priv.0 (mm-iface-modem.c:4639)
2022-08-25mtk: fix task completion when loading supported modesAleksander Morgado
2022-08-25icera: fix double free on %%IPSYS=? response processingAleksander Morgado
2022-08-19broadband-modem-mbim: fix crash on register indication parsing failureAleksander Morgado
Found during code review.
2022-08-19cli,output: plug leak of OutputItemListItem itemsAleksander Morgado
2022-08-20mm-shared-qmi: Fix current modesAkash Aggarwal
Modem reports 2G+3G+4G+5G current modes, while 2G is not supported. Consider device capabilities in deciding current modes.
2022-08-19libmm-glib,sms: simplify 'data' property retrieval logicAleksander Morgado
2022-08-19sim-qmi: implement loading GID1 and GID2Aleksander Morgado