aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2022-08-01broadband-modem: notify when a sync is needed after a suspend/resumeAleksander Morgado
Modem/SIM implementations that keep cached info that is not supposed to change during runtime of a modem may need to be notified about when a suspend/resume has happened, so that they can clear and reload the internally cached data.
2022-07-29iface-modem: reordering of ready methods in sync()Aleksander Morgado
2022-07-29broadband-modem: quick sync the Modem interface also if disabledAleksander Morgado
If the modem was in disabled state, we still want to sync the Modem interface, among other things to make sure no SIM event happened during the system suspension. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/605
2022-07-25helpers-mbim: report correct network availability from mbim bitmaskAleksander Morgado
MbimProviderState is a bitset, so don't try to match exact values in a switch statement when converting to MMModem3gppNetworkAvailability. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/524
2022-07-25build: make tests optionalDylan Van Assche
Add a meson option -Dtests and --without-tests automake option to disable the compilation of all available testcases. This is useful for compiling projects with Flatpak such as GNOME Control Center which disables all possible integrations since they only need the DBus part of ModemManager. Contributes to https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1392
2022-07-24base-sms: don't clear parts on send/store errorAleksander Morgado
The part generation logic is independent to whether the SMS send or store operation failed, so just avoid doing the parts cleanup. E.g. if we created the parts for store() but storing failed, the same parts could still be used for send() successfully.
2022-07-24base-sms: fix segfault when storing already sent messagesAleksander Morgado
The internal list of parts in the base SMS object is created either when the message is sent or when the message is stored. The daemon should not expect the list of SMS parts to be empty upon a store() operation requested via DBus, as the list of parts may have already been created during send(). Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/598
2022-07-16broadband-modem: don't make fatal SIM swap check of IMSI or ICCIDAleksander Morgado
If the SIM swap check using ICCID or IMSI fail, don't completely fail the operation, as the other one may still succeed. Fail the operation only if both checks failed.
2022-07-16broadband-modem: plug leaks in sim_swap_context_free()Aleksander Morgado
2022-07-16shared-qmi: improve logging of steps in SIM hot swap setupAleksander Morgado
2022-07-16shared-qmi: only transfer state to priv info if SIM hotswap setup succeedsAleksander Morgado
Don't transfer state to the private info until we know the operation has fully succeeded.
2022-07-16shared-qmi: move indication callbacks out of the SIM hot swap setupAleksander Morgado
2022-07-16shared-qmi: return error if none of the methods succeeded in SIM hot swap setupAleksander Morgado
2022-07-16shared-qmi: avoid jumps in the SIM hot swap setup state machineAleksander Morgado
Always transition to the next step, and decide what to do based on the state tracked by the previously run steps.
2022-07-16shared-qmi: make refresh all non-fatal during SIM hot swap setupAleksander Morgado
If for any reason "Refresh all" fails, don't return an error, as we may have already configured SIM slot status correctly.
2022-07-16shared-qmi: add slot status indication in its own step during SIM hot swap setupAleksander Morgado
2022-07-16shared-qmi: add slot status check in its own step during SIM hot swap setupAleksander Morgado
Also, don't make the "Get Slot Status" operation fatal; just go on assuming that the slot status indications are unsupported.
2022-07-16shared-qmi: new step in SIM hot swap setup to connect to refresh signalAleksander Morgado
Instead of connecting to the signal in multiple places, do it in one single place in the logic.
2022-07-16mm-iface-modem,mm-broadband-modem,mm-shared-qmi: support SIM IMSI switchPrakash Pabba
It is possible that SIM IMSI might change in roaming conditions for a sim. Register for UIM refresh indication always and reprobe if ICCID or IMSI changes for QMI modem.
2022-07-16mm-call-qmi: implement DTMF supportDylan Van Assche
Overwrite the base class with a QMI implementation to send DTMF characters during a call. Uses the continuous DTMF QMI messages to support both CDMA and 3GPP networks.
2022-07-16mm-call-qmi: drop unnecessary white spaceDylan Van Assche
2022-07-16mm-call-qmi: fix comment consistencyDylan Van Assche
Do not use caps for 'call'
2022-07-15iface-modem-3gpp-profile-manager: add default index_fieldDaniele Palmas
If check_support functions are not defined when implementing iface-modem-3gpp-profile-manager, set "profile-id" as default index_field.
2022-07-15mm-iface-modem-3gpp-profile-manager: do not override Bearer 3gpp profile ↵Carlo Lobrano
properties during connection When connecting via AT commands requiring a 3gpp profile with undefined profile-id, the corresponding bearer 3gpp profile is later modified adding the selected PDP context. For this reason when a next connection is requested with the same properties (that is no profile-id) the already existing bearers is not selected because of the different profile-id value and a new one is created. This change lets the connection logic use a copy of the user-requested bearer's 3gpp profile which can be modified for the logic needs, but it is not stored and then does not compromise a bearer comparison in a next connection request.
2022-07-15mm-iface-modem-3gpp-profile-manager: do not try to deactivate unused profileCarlo Lobrano
'mm_3gpp_profile_list_find_best' can return an unused profile ID, which is later tested for being already activated in 'profile_manager_check_activated_profile_ready' with +GCACT?. Since the profile does not exist, this check always fails, but the profile manager still tries to deactivate it, which is unnecessary. This change checks the return error from 'check_activated_profile' and skips SET_PROFILE_STEP_DEACTIVATE_PROFILE step if error is MM_CORE_ERROR_NOT_FOUND.
2022-07-14mbim: Make use of uim qmi service if availableUlrich Mohr
2022-07-14mm-sim-qmi: use shared qmi interface instead of using qmi modem class directlyUlrich Mohr
2022-07-06mm-bearer-mbim: ignore mbim status error 'SIM not inserted' while disconnectingJack Song
Ignore the error SIM_NOT_INSERTED when ModemManager disable modem after SIM card removed Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/578
2022-06-30port-mbim: monitor consecutive timeoutsAleksander Morgado
2022-06-30port-qmi: monitor consecutive timeoutsAleksander Morgado
2022-06-30base-modem: setup timeout monitoring in all control portsAleksander Morgado
If any of the control ports ends up timing out 10 consecutive times, the modem will be flagged as invalid and it will be reprobed from scratch. This allows us to detect modems that end up irresponsive in QMI or MBIM while they're still exposed in e.g. the USB bus.
2022-06-30port: make 'timed-out' a signal for all port types, not just serialAleksander Morgado
2022-06-27mm-sms-part-3gpp: sms_decode_text: avoid decoding an empty text messageDmitry Skorykh
Fix segfault that can occur during message text decoding if there are no elements in SMS text
2022-06-19port-probe: avoid QCDM port probing if not for specific pluginsDaniele Palmas
The QCDM/DIAG port is usually nowadays exclusively used by applications gathering traces from the modem, so avoid port probing and grabbing when plugins set the property MM_PLUGIN_ALLOWED_QCDM. A new property MM_PLUGIN_REQUIRED_QCDM is created for those plugins requiring the QCDM port for properly using a modem.
2022-06-19broadband-bearer: Save profile ID upon successful connectionSven Schwermer
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-06-09mm-broadband-modem-qmi: set endc_available as false by defaultPrakash Pabba
2022-06-09suspend: add suspend/resume support with powerd on ChromeOSRukun Mao
ModemManager handles suspend and resume signals sent from powerd Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/547
2022-05-25iface-modem: allow state updates without bearer listAleksander Morgado
E.g. if we reach the failed state before the bearer list is created.
2022-05-25iface-modem: report failed modems with unknown capabilitiesAleksander Morgado
Instead of not creating a modem object, create it in failed state with the "unknown capabilities" failed state reason.
2022-05-25iface-modem: minor coding style fixAleksander Morgado
2022-05-25iface-modem: fail initialization if eSIM without profilesAleksander Morgado
A modem using an eSIM without profiles should not be allowed to get enabled, it should be really treated as a modem without a physical SIM.
2022-05-25iface-modem: skip setting up carrier config on esim without profilesAleksander Morgado
2022-05-25iface-modem: load current modes and current bands even without SIMAleksander Morgado
These are current settings in the modem, they don't really depend on whether there is a SIM or not.
2022-05-25iface-modem: move helper method out of the initialization logicAleksander Morgado
2022-05-25base-sim: skip loading SIM identifier in eSIM without profilesAleksander Morgado
2022-05-25broadband-modem: rework checking for SIM swapAleksander Morgado
Avoid calling the MMBaseSim class method directly, and use the helper mm_base_sim_load_sim_identifier() instead. Also, rework a bit the logic to have a single completion method once we know the current ICCID.
2022-05-25base-sim: disallow SIM user operations in eSIM without profilesAleksander Morgado
2022-05-25base-sim: skip loading SIM properties based on SIM typeAleksander Morgado
If the reported eSIM doesn't have profiles, there is no point in trying to load properties like ICCID, IMSI or operator name/id. If the reported SIM is a physical SIM, there is no point in trying to load properties like EID or eSIM status.
2022-05-25broadband-modem-mbim: improve logging of found SIM slotsAleksander Morgado
2022-05-25iface-modem: minor coding style fixAleksander Morgado