aboutsummaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
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-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-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-24telit: add LE910Cx MBIM composition port hintsDaniele Palmas
2022-05-24telit: add wwan supportDaniele Palmas
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-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.
2022-05-20broadband-modem-mbim-quectel: SIM hot swap supported by default in MBIMAleksander Morgado
2022-05-20iface-modem: remove MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED propertyAleksander Morgado
This property is used in the MMIfaceModem to flag whether the SIM hot swap setup has been performed or not. The flag is now moved to the iface-specific private context. The property was also used in AT-based modems, so that implementations supporting the SIM hot swap via AT URCs could flag the upper layers whether the enabling of the feature was done correctly or not, and if so, create and keep the AT ports context open. But this feature only made sense in AT-based modems, i.e. an MBIM modem that detects SIM hot swaps via MBIM indications exclusively should not require the AT ports context open for anything. The check in the MMBroadbandModem object has therefore been removed, and the logic will be updated so that it only applies to AT-based modems.
2022-05-19xmm: wait for +XLSRSTOP URC before starting next sessionAleksander Morgado
It is important to gracefully stop the session before starting the next session, making sure the engine is completely stopped. This can be ensured by waiting for the +XLSRSTOP URC just after having received the +XLSRSTOP command response. We'll do an explicit wait for that URC with a 10s timeout, in order to avoid waiting forever if the URC is never received. It will be assumed that the engine is off if the 10s timeout happens, in the same way as we were doing until now. During the wait time for the URC, the operation task ownership is shared among the response processor, the URC handler and the timeout source. Once any of them decides to complete the task, the others will automatically avoid attempting to complete the same task. Based on a patch originally developed by: Som_SP <somashekhar.puttagangaiah@intel.com>
2022-05-09Revert "plugins,fibocom: Add udev filter for pci wwan"Andrew Lassalle
This reverts commit 115a5d876ee57943f1ec6d8ebcb3328d821ec80a.
2022-05-05plugins,fibocom: Add udev filter for pci wwanAndrew Lassalle
Add a udev filter to identify pci wwan ports from fibocom modems.
2022-04-15huawei: disable +CPOL based features in Huawei E226Aleksander Morgado
Issue and bugfix suggestion by Alex Leopoldo Villacís Lasso. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/552
2022-04-13cinterion: add PLS63 port type hintsKonrad Zapałowicz
The PLS63 is a drop-in replacement for PLS62 model, however it uses different USB SoC and enumerates differently on the USB bus. This commit adds relevant type hints with a correct Vendor and Product IDs so that the device is correctly discovered. Without these type hints the modem would not work correctly as it uses wrong port for PPP.
2022-04-12plugins,telit: SWPKGV parsing needs more permissive regexCarlo Lobrano
In some cases the "base" software package string does not have the currently expected format of \d{2}.\d{2}.\d{3}. Specifically the last triplet of characters might not be digits. For example a valid version string might be 25.20.-04, which the current regex is unable to parse. This change replace the previous regex with one less restrictive, checking only the first part of the version's format.
2022-04-11test,modem-helpers-telit: fix test inputsCarlo Lobrano
test input strings for test_telit_parse_swpkgv_response invert <CR> and <LF>. The correct match is \r for <CR> and \n for <LF>.
2022-04-08sms: prevent crash if date is out of rangeCarlo Lobrano
g_date_time_new, and g_date_time_new_utc return NULL if inputs are out of range, and currently mm_new_iso8601_time passes the GDateTime created by those two functions to date_time_format_iso8601 without checking for NULL values, causing a g_date_time_format_iso8601 crash if PDU data is corrupted with wrong date. To prevent this, mm_new_iso8601_time now can return NULL and set a new GError if GDateTime created by g_date_time_new is NULL. Fixes #546
2022-04-07plugins,telit: remove unnecessary after sim unlock 1s delayCarlo Lobrano
Currently the Telit modem implements modem_after_sim_unlock() with 1s timeout, however the #QSS URC management (introduced later) waits for QSS=1 URC in csim_unlock_periodic_check up to 3s, which makes this 1s delay not necessary anymore. see also: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/3
2022-03-29telit: reorganize common_parse_bnd_response for readabilityCarlo Lobrano
2022-03-29telit: fix AT#BND parsing for LE910C1-EUXCarlo Lobrano
Some modems, like LE910C1-EUX, express the LTE part of #BND output in HEX format, but currently the MM parser for such case is limited to modems that have "ext_4g_bands". This commits use the new MMTelitModel info to decide how to parse #BND command output. Fixes #487
2022-03-29telit: detect modem model from revisionCarlo Lobrano
Telit revision string can be used to identify the specific model, which in turn is useful to specialize the behavior of the plugin. This change adds revision parsing to detect some telit modems. Initially it adds the ones that have different behaviors in #BND output parsing for example.
2022-03-29telit: override load revisionCarlo Lobrano
Currently, firmware revision string is obtained via AT+CGMR or AT+GMR commands from the default mm-broadband-modem. For a class of Telit modems however this command does not return the actual Telit Software Package version, but the "Modem FW Version", which is only a component of the whole firmware. For this class of modems, the correct string is obtained with "AT#SWPKGV" command. This change overrides load_revision* functions to add the ability to parse "AT#SWPKGV" command for the modems that support it, and falls back to the same logic that was implemented in mm-broadband-modem otherwise.
2022-03-28foxconn: consolidate checks for T99W175 and T99W265Aleksander Morgado
These two devices require QDU and MCFG+APPS version string comparison. We now have a single place where we check for this requirements.
2022-03-28foxconn: consolidate logic deciding required update methodsAleksander Morgado
2022-03-28foxconn: consolidate logic deciding requested firmware version typeAleksander Morgado
We don't want to have in two different places the vid:pid match list when selecting the type of firmware version we ask for.
2022-03-28foxconn: switch to use autoptr() in firmware info loadingAleksander Morgado
2022-03-28foxconn: remove unneeded input bundle unrefAleksander Morgado
2022-03-28foxconn: use new qmi service(fox) to get firmware versionFreedom Liu
foxconn modules get firmware version: Try with the new FOX service first. If FOX service failed, try with DMS service. T99W175(vid:105b) ; T77W968(0489:e0b4 ; 0489:e0b5): qmi service: dms T99W265(0489:e0da ; 0489:e0db): qmi service: fox
2022-03-27build,meson: Fix udev rules and keyfiles testsIñigo Martínez
The port to the meson build system a set of defines were lost, that made the udev rules and the keyfiles tests to not run properly. This has been changed so defines are now in their proper place and tests are run properly. Fixes #537
2022-03-26linktop: new port type hintsAleksander Morgado
Flag ttyACM0 as data port and ttyACM1 as primary port, as per https://bugzilla.gnome.org/show_bug.cgi?id=637140#c10 Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/14
2022-03-25cinterion: Add support for PLSx3w modemsTheodore A. Roth
Signed-off-by: Theodore A. Roth <theodore_roth@trimble.com>
2022-03-18telit: fix mode 'any' setting with AT commandsDaniele Palmas
When setting mode 'any' with +WS46 command the supported modes should be considered for choosing the at command correct argument.
2022-03-16modem-helpers: improve and fix COPS=? numeric fields parsingAleksander Morgado
The numeric fields in the +COPS=? response were relying on a very weak parsing logic, assuming that they were single-digit numeric values and not using the common string to integer conversion utilities. This commit improves the conversion from the 3GPP/ETSI defined network availability and access technology values to the MM defined ones, providing enum-based matches even if the numeric values are the same. The commit also fixes the parsing of access technology values > 10, required to report 5G related values.
2022-03-09fibocom: new shared interface for common logicAleksander Morgado
The set_initial_eps_bearer_settings() operation is the same in XMM capable and generic MBIM modem objects. Place it in a common shared interface so that we don't duplicate code.
2022-03-09fibocom: toggle modem power after attach APN on mbimJack Song
2022-03-09fibocom: Add reset functionalitySven Schwermer
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-03-07intel: custom setup for all available AT portsAleksander Morgado
Fully disable send delay as we're using AT ports via the new WWAN subsystem.
2022-03-07xmm: setup single GPS control port exclusivelyAleksander Morgado
Use the same logic always to decide which is the best GPS control/data port, and then perform the initial port setup (GNSS engine off) only that single port.
2022-03-07xmm: prefer port flagged as AT_GPS_CONTROL to manage the GNSS engineAleksander Morgado
Use the new AT_GPS_CONTROL udev tag to decide which is the best port to manage the GNSS engine.
2022-03-07intel: inherit GNSS location support from the shared XMM interfaceAleksander Morgado
We're not going to implement all XMM shared operations from the shared utils, as the newer Intel modems support the new operations in the Microsoft MBIM Extensions. Just inherit the GNSS management capabilities.
2022-03-07intel: periodic signal checks disabled by defaultAleksander Morgado
As we can rely on async MBIM notifications.
2022-03-07intel: SIM hot swap supported by defaultAleksander Morgado
2022-03-07intel: avoid attempting QMI over MBIM in non-Qualcomm deviceAleksander Morgado
2022-03-07intel: disable data over TTY by defaultAleksander Morgado
Only data over NET is expected
2022-03-07intel: new MBIM capable devicesom