aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-07-08fibocom: Add alternative MA510 USB configSven Schwermer
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-07-08fibocom: Add alternative L610 USB configSven Schwermer
This is the factory-default setting. Make sure to support it as well as the ECM/RNDIS settings. The L610 in GTUSBMODE=31 only enumerates with serial USB interfaces using the option driver, so we need to allow that driver too. Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
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-28fibocom: Fix GTRNDIS parsing functionSven Schwermer
This fixes a bug introduced in a2a0e2d754. Since the state pointer is always non-NULL, the function will always fail if GTRNDIS is inactive, i.e. the modem will return state=0 and no cid field. Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-06-27fibocom: ensure RNDIS disconnected before a new connection attemptSven Schwermer
The ECM dialling guide requires to check whether RNDIS is already active before attempting to establish an ECM/RNDIS connection. If it is active (regardless of its settings), we will disconnect it first, before attempting the new connection with the user-provided settings. Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
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-24build,meson: require libqmi 1.31.7, in sync with autotoolsAleksander Morgado
The required libqmi version was updated in configure.ac to 1.31.7 in commit ac06052b97cc02e60ae1ed7a551727b3c14d6a22, but we forgot to do the same in the meson setup.
2022-06-22telit:broadband-mbim: save MBIM originated revision into ↵Carlo Lobrano
software_package_version Currently, MBIM broadband Telit modem does not store firmware revision into 'software_package_version', so it won't be possible to specialize behavior based on modem model (using mm_telit_model_from_revision). This change overloads load-revision in MBIM broadband Telit in order to call parent's loading and store the returned 'caps_firmware_info' into 'software_package_version' via mm_shared_telit_store_revision.
2022-06-22telit: add function to store revisionCarlo Lobrano
2022-06-19telit: add support for QCDM portsDaniele Palmas
The new QCDM probing mechanism does not probe and grab QCDM ports if the plugin is not allowed, so QCDM ports currently ignored in compositions can be safely marked as ID_MM_PORT_TYPE_QCDM.
2022-06-19plugins: add MM_PLUGIN_REQUIRED_QCDM to plugins requiring QCDMDaniele Palmas
The new QCDM port probing and grabbing mechanism implements a new property for detecting the plugins which require the QCDM port to be probed and grabbed. Add the property to the affected plugins.
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-09plugins,telit: do not crash if revision is not setCarlo Lobrano
In mm_telit_model_from_revision there is nothing that prevents to use the input revision string if it is NULL, which currently happens if the modem is pure MBIM (i.e. LE910-V2 pid:0x0032). Fix the above error returning a default safe value and not using the NULL variable.
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-30fcc-unlock: add support for new Lenovo T99W175 SDX55 FCC unlock methodThilo-Alexander Ginkel
Tested w/ Lenovo firmware T99W175.F0.1.0.0.9.DT.003.055 (old unlock method) and T99W175.F0.1.0.0.9.DT.003.079 (new unlock method)
2022-05-25cli: don't print signal quality unless modem is enabledAleksander Morgado
We don't have a clear way to report "unknown" signal quality, so for now just skip printing it altogether in the mmcli human output if the modem is not yet enabled.
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
2022-05-25base-sim: don't reload properties that may have been already initializedAleksander Morgado
If we created the SIM objects during the SIM slots processing, we should not attempt to reload the settings that were already set during the re-initialization, as that may end up clearing the initial properties.
2022-05-25base-sim: remove bogus comments in initializationAleksander Morgado
All properties loaded during initialization are meant to be loaded only once, no point in saying that for each property.
2022-05-25broadband-modem-mbim: assume no lock is required in eSIM without profilesAleksander Morgado
2022-05-24bearer-mbim: plug user cancellable to all MBIM operationsAleksander Morgado
2022-05-24bearer-mbim: if connection attempt fails, trigger an explicit disconnectionAleksander Morgado
E.g. if the error reported by the MbimDevice is a timeout error, it means the connection attempt is still ongoing in the device, we need to ask it to stop.
2022-05-24bearer-mbim: use common helper to build disconnection messageAleksander Morgado
2022-05-24telit: add LE910Cx MBIM composition port hintsDaniele Palmas
2022-05-24telit: add wwan supportDaniele Palmas
2022-05-24filter: add vendor id/subsystem vendor id filterDaniele Palmas
Some PCI modems prefer customizing the subsytem vendor ID, instead of the vendor ID. Add a filter for the couple vendor/subsystem vendor IDs.
2022-05-24base-modem: add subsystem vendor ID propertyDaniele Palmas
Subsystem vendor ID can be used for identifying PCI modems, so expose the property.
2022-05-24kernel-device, generic: add subsystem vendor ID supportDaniele Palmas
Add subsystem vendor ID support, that can be used in pci devices instead of vendor ID customization.
2022-05-20base-modem: if ABORTED during initialization, modem not exportedAleksander Morgado
Commit b497de325 introduced a change by which some common errors (e.g. SIM missing) would be reported as MM_CORE_ERROR_ABORTED. This had the undesired effect of making the MMBaseModem object not flag as valid the modem, because the returned error wasn't MM_CORE_ERROR_WRONG_STATE. We now change this logic so that only ABORTED makes the modem object not flagged as valid, and we'll do that only if the Modem interface isn't exposed in DBus. Fixes b497de325
2022-05-20mm-bearer-mbim: fix connect_set_ready always parse result for needing to ↵Jack Song
check NwError on failure Issue and bugfix suggestion by Aleksander Morgado. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/549
2022-05-20broadband-modem-mbim: ignore SIM swap events during a slot switch actionAleksander Morgado
When we explicitly request to perform a SIM slot switch operation, we should ignore the 'slot info status' and 'subscriber ready status' indications that report an active SIM slot change, or otherwise they'll end up interfering with the correct reporting of the slot switch operation. We could have attempted to complete the slot switch operation early using the indications, but that solution would have forced us to assume that theinfo in the indications is the one we had requested, which is not easy because the 'slot info status' indication is reported once for each slot, so a single SIM slot switch operation triggers multiple 'slot info status' indications, as well as additional 'subscriber ready status' indications reporting the same. Fixes suggested by Pavan Holla <pholla@chromium.org> and tested by Jinjian Song <Jinjian.Song@fibocom.com>. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/550
2022-05-20iface-modem: common SIM event reporting logicAleksander Morgado
We no longer have separate mm_base_modem_process_sim_event() and mm_broadband_modem_sim_hot_swap_detected() methods. The only difference between both of them was that one of them would attempt to cleanup the ports context associated to the SIM hot swap event logic as soon as a swap was detected, in order to avoid queueing up multiple such events. The previous logic wasn't working well, though, as there could be mixed AT+QMI or AT+MBIM devices that would also require that same cleanup and so we didn't always know which one should have been called. Now we have a single mm_iface_modem_process_sim_event() method, which will trigger the reprobe and disabling, but which will also perform the cleanup of the SIM ports swap setup as specified by the implementation. So, if a plugin explicitly initializes the serial ports context for SIM hot swap handling, it should also explicitly clean it up. Also, the initialization of the serial ports context for SIM hot swap handling is no longer done automatically for all modems, it will be done only for those modems using it; i.e. the modems that explicitly report support SIM hot swap handling using AT URCs.