aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-07-10cinterion: new custom MBIM modem objectAleksander Morgado
2021-07-09utils: remove custom g_ptr_array_find_with_equal_func()Aleksander Morgado
This was required when building with GLib < 2.54, but we now require 2.56 as minimum, so it is no longer needed.
2021-07-09libmm-glib,common-helpers: fix build with glib 2.56Benoît Monin
The support of autoptr for GEnumClass and GFlagsClass was introduced in glib 2.58. To keep compatibility with glib 2.56, declare the autoptr cleanup functions. Fixes #397
2021-07-09iface-modem: don't fail enabling if modem_power_up() isn't implementedAleksander Morgado
There are modems (e.g. Nokia, Thuraya, Iridium) which don't require or don't support power management, and therefore there is no way to either load or update the power status. In those modems we just assume ON is the current and only value (set in the skeleton during initialization) and so when we attempt to update the power state to ON during enabling, the logic should not break. Fix the logic by making sure the requested_power_setup() function pointers are only checked for validity after ensuring we're not already in the desired power state. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/398
2021-07-08qcom-soc: Add support for WWAN subsystem instead of RPMSGStephan Gerhold
Recent Linux kernel versions have introduced a generic WWAN subsystem that provides various char devices for QMI, AT etc, similar to the subsystem-specific char devices for USB or RPMSG. The RPMSG char device for Qualcomm SoCs (e.g. MSM8916/MSM8974) are particularly complicated to work with because they need to be explicitly created from userspace with rpmsgexport and don't show up automatically. However, it turns out it's fairly simple to wrap the RPMSG subsystem in a simple driver for the WWAN subsystem. This has several advantages: - We can drop support for the special RPMSG char devices entirely at some point. - The WWAN char devices show up automatically, without having to export them explicitly, making ModemManager work out of the box on these devices. For now, just support using the WWAN subsystem alternatively for the qcom-soc plugin. Later we can consider dropping the old RPMSG code.
2021-07-08modem-qmi: implement voice unsolicited events and process all_call_status ↵Joel Selvaraj
indication
2021-07-08modem-qmi: implement voice check support and create call functionalityJoel Selvaraj
2021-07-08call-qmi: implement call start, hangup and acceptJoel Selvaraj
2021-07-08call-qmi: new `MMCallQmi' objectJoel Selvaraj
2021-07-07ublox: Mark ubandsel as unsupported on SARA-R4 and -N4Alexander Dahl
See log from a SARA-R410M-02B-01 before the change: Feb 01 05:40:01 unit ModemManager[304]: <debug> [1612158001.012330] [modem0/ttymxc4/at] --> 'AT+UBANDSEL?<CR>' Feb 01 05:40:01 unit ModemManager[304]: <debug> [1612158001.026831] [modem0/ttymxc4/at] <-- '<CR><LF>ERROR<CR><LF>' Feb 01 05:40:01 unit ModemManager[304]: <debug> [1612158001.027113] [modem0/ttymxc4/at] operation failure: 100 (Unknown error) Feb 01 05:40:01 unit ModemManager[304]: <warn> [1612158001.027298] [modem0] couldn't load current bands: Unknown error Backed by SARA-R4 series AT commands manual, no reference to +UBANDSEL in the manual at all. Log after the change: Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.500845] [modem0] (u-blox) support configuration found for 'SARA-R410M-02B' Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.500961] [modem0] (u-blox) band update requires explicit unregistration Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.501052] [modem0] (u-blox) UACT based band configuration unsupported Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.501141] [modem0] (u-blox) UBANDSEL based band configuration unsupported Fixes: 437fb830c807 ("ublox,helpers: assume all SARA/LARA devices require COPS") Signed-off-by: Alexander Dahl <ada@thorsis.com>
2021-07-07ublox: Add more values to URAT combinationsAlexander Dahl
The SARA-R410M-02B-01 only supports values 7 and 8, log excerpt: Feb 01 05:40:00 unit ModemManager[304]: <debug> [1612158000.826046] [modem0/ttymxc4/at] --> 'AT+URAT=?<CR>' Feb 01 05:40:00 unit ModemManager[304]: <debug> [1612158000.833596] [modem0/ttymxc4/at] <-- '<CR><LF>+URAT: (7-8),(7-8)(7-8)<CR><LF><CR><LF>OK<CR><LF>' Feb 01 05:40:00 unit ModemManager[304]: <warn> [1612158000.833992] [modem0] (u-blox) unexpected AcT value: 7 Feb 01 05:40:00 unit ModemManager[304]: <warn> [1612158000.834096] [modem0] (u-blox) unexpected AcT value: 8 Feb 01 05:40:00 unit ModemManager[304]: <warn> [1612158000.834193] [modem0] couldn't load supported modes: No combinations built from +URAT=? response The SARA-R4 series AT commands manual (and also the SARA-R5 AT commands manual) lists them like this: - 7: LTE Cat M1 - 8: LTE Cat NB1 After the change, log looks like this: Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.490627] [modem0/ttymxc4/at] --> 'AT+URAT?<CR>' Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.499994] [modem0/ttymxc4/at] <-- '<CR><LF>+URAT: 7,8<CR><LF><CR><LF>OK<CR><LF>' Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.500433] [modem0] (u-blox) current allowed modes retrieved: 4g Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.500561] [modem0] (u-blox) current preferred modes retrieved: 4g Signed-off-by: Alexander Dahl <ada@thorsis.com>
2021-07-06docs: add --output-json documentationNicholas Smith
Signed-off-by: Nicholas Smith <nicholas@nbembedded.com>
2021-07-06mm-sim-mbim: Remove update of remaining attemptsMichal Mazur
Calling the mm_iface_modem_update_unlock_retries function directly from pin_set_enter_ready caused a notification to be send too early with invalid number of attempts to unlock on MBIM modems. The mm_iface_modem_update_unlock_retries is already called for all modems from send_pin_ready (mm-base-sim.c).
2021-07-03api,location: update TAC documentation to allow 3-byte values in 5GNRAleksander Morgado
2021-07-01libmm-glib,call: use helper macros to manage the monitored propertiesAleksander Morgado
2021-07-01libmm-glib,bearer: use helper macros to manage the monitored propertiesAleksander Morgado
2021-07-01libmm-glib,modem-signal: use helper macros to manage the monitored propertiesAleksander Morgado
2021-07-01libmm-glib,modem-location: use helper macros to manage the monitored propertiesAleksander Morgado
2021-07-01libmm-glib,modem-firmware: use helper macros to manage the monitored propertiesAleksander Morgado
2021-07-01libmm-glib,modem-time: use helper macros to manage the monitored propertiesAleksander Morgado
2021-07-01libmm-glib,modem-oma: use helper macros to manage the monitored propertiesAleksander Morgado
2021-07-01libmm-glib,modem-messaging: use helper macros to manage the monitored propertiesAleksander Morgado
2021-07-01libmm-glib,modem-3gpp: use helper macros to manage the monitored propertiesAleksander Morgado
2021-07-01libmm-glib,modem: use helper macros to manage the monitored propertiesAleksander Morgado
2021-07-01libmm-glib,helpers: new helper macros to define common property managementAleksander Morgado
2021-07-01libmm-glib: use single mutex in each type to sync accessAleksander Morgado
There is truly no need for a per-property mutex, using a global one for the whole object is equally fine.
2021-07-01libmm-glib,common-helpers: refactor helper methodsAleksander Morgado
Remove unused methods, like all the variant_to_array() ones, and reorder some others so that both header and source file have the same order always.
2021-07-01cli,location: new '--location-monitor' actionAleksander Morgado
This action allows us to monitor location updates as signaled via the 'Location' property, only available if location signaling has been explicitly enabled (e.g. with --location-set-enable-signal)
2021-07-01iface-modem-location: print 0-prefixed LAC/TAC/CID values in logAleksander Morgado
Each with its expected corresponding length.
2021-07-01cli,location: TAC is 3 bytes in 5GNRAleksander Morgado
TAC is 3 bytes for NG-RAN as specified in 3GPP TS 38.413 clause 9.3.3.10 and in 3GPP TS 24.501 clause 9.10.3.8. We'll always print it as 3 bytes in the cli output, as that's also backwards compatible with the original 2 byte TAC in LTE.
2021-07-01libmm-glib,location: new signaled location API supportAleksander Morgado
We allow clients to receive asynchronous updates of location information, e.g. if "location signaling" is explicitly enabled (with the setup() method). But if so, we should also allow clients to easily process those asynchronous updates in the libmm-glib library, instead of requiring them to run explicit DBus queries to refresh the location information. These new signaled location APIs allow clients to do so; they can enable location signaling, and then just wait for the updates to arrive.
2021-06-30libmm-glib,location: build_locations() doesn't own the dictionaryAleksander Morgado
Rework the build_locations() method so that it doesn't take ownership of the input dictionary. This allows us reusing this method with dictionaries for which ownership cannot be transferred.
2021-06-30cinterion: fix double free when loading initial EPS contextAleksander Morgado
The properties object stored in the context is being returned as task result; so we should make sure that object is no longer left in the context so that it's not freed twice. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/395
2021-06-25libmm-glib,modem: move deprecated methods to compat sourceAleksander Morgado
2021-06-25libmm-glib,location-3gpp: move deprecated methods to compat sourceAleksander Morgado
2021-06-25libmm-glib,simple-status: move deprecated methods to compat sourceAleksander Morgado
2021-06-25libmm-glib,pco: move deprecated methods to compat sourceAleksander Morgado
2021-06-25libmm-glib,modem-3gpp: move deprecated methods to compat sourceAleksander Morgado
2021-06-25libmm-glib,location-gps-nmea: move deprecated methods to compat sourceAleksander Morgado
2021-06-25libmm-glib,simple-connect-properties: move deprecated methods to compat sourceAleksander Morgado
2021-06-25libmm-glib,bearer-properties: move deprecated methods to compat sourceAleksander Morgado
2021-06-25libmm-glib,call-properties: move deprecated methods to compat sourceAleksander Morgado
2021-06-25libmm-glib,location-gps-nmea: add missing type check in get_traces()Aleksander Morgado
2021-06-25libmm-glib,oma: deprecate method names without the mm_modem_oma prefixAleksander Morgado
2021-06-25libmm-glib,3gpp: fix initial-eps-bearer-settings property updatesAleksander Morgado
2021-06-24mmcli,messaging: fix leak when printing supported storagesAleksander Morgado
2021-06-24libmm-glib,messaging: avoid array cleanup in get_supported_storages()Aleksander Morgado
If we return a reference to the internal array in ensure_internal_supported_storages() and then we free the array unconditionally in the caller, the next time we call it, the array would be valid, but it would be fully empty.
2021-06-24libmm-glib,modem: add missing input argument checksAleksander Morgado
2021-06-22port-qmi: Increase the reference counter of the QrtrNodeAndrew Lassalle
Currently, we are not increasing the reference counter of the QrtrNode when creating a PortQmi for a QRTR port, and we are clearing the object when disposing the port.
2021-06-21examples,modem-watcher-python: also monitor modem state updatesAleksander Morgado
$ sudo ./modem-watcher-python [ModemWatcher] ModemManager 1.16.6 service is available in bus [ModemWatcher] /org/freedesktop/ModemManager1/Modem/0: modem managed by ModemManager [015805000283080]: foxconn (MBIM [105B:E0AB]) [ModemWatcher] /org/freedesktop/ModemManager1/Modem/0: modem state updated: disabled -> enabling (user-requested) [ModemWatcher] /org/freedesktop/ModemManager1/Modem/0: modem state updated: enabling -> enabled (user-requested) [ModemWatcher] /org/freedesktop/ModemManager1/Modem/0: modem state updated: enabled -> registered (unknown)