summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* telit: override load revisionCarlo Lobrano2022-03-296-0/+175
| | | | | | | | | | | | | 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.
* mm-netlink: use unaligned netlink attribute lengthBjørn Mork2022-03-281-1/+1
| | | | | | | | | Alignment padding is not accounted for in the netlink attribute length. Fix to avoid warnings later if we add shorter fixed length attributes, even though it currently makes no difference since we only add a 4 byte attribute Signed-off-by: Bjørn Mork <bjorn@mork.no>
* mm-netlink: only change IFF_UP flagBjørn Mork2022-03-281-3/+1
| | | | | | | | | | | | | | | | | | | | This fixes the missing NOARP flag on the second and following VLAN sub-interfaces when multiplexing over the cdc_mbim driver. ifi_change specifies all the flags we want to change. Any listed flag which isn't set in ifi_flags will be cleared by the kernel: if (ifm->ifi_change) flags = (flags & ifm->ifi_change) | (rtnl_dev_get_flags(dev) & ~ifm->ifi_change); Drivers like cdc_mbim set some netdev flags by default, indicating supported or unsupported features. The driver emulates an ethernet netdev but it doesn't implement ARP. Clearing NOARP on cdc_mbim netdevs will block IP transmissions, waiting for an ARP reply we never will receive. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* po add Dutch translationNathan Follens2022-03-282-0/+118
|
* foxconn: consolidate checks for T99W175 and T99W265Aleksander Morgado2022-03-281-31/+31
| | | | | | These two devices require QDU and MCFG+APPS version string comparison. We now have a single place where we check for this requirements.
* foxconn: consolidate logic deciding required update methodsAleksander Morgado2022-03-281-43/+33
|
* foxconn: consolidate logic deciding requested firmware version typeAleksander Morgado2022-03-281-81/+61
| | | | | 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.
* foxconn: switch to use autoptr() in firmware info loadingAleksander Morgado2022-03-281-48/+35
|
* foxconn: remove unneeded input bundle unrefAleksander Morgado2022-03-281-1/+0
|
* foxconn: use new qmi service(fox) to get firmware versionFreedom Liu2022-03-282-11/+104
| | | | | | | | | 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
* build: require libqmi 1.31.4 for FOX service supportAleksander Morgado2022-03-282-2/+2
|
* build,meson: Fix udev rules and keyfiles testsIñigo Martínez2022-03-272-107/+94
| | | | | | | | | | 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
* linktop: new port type hintsAleksander Morgado2022-03-264-4/+40
| | | | | | | 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
* cinterion: Add support for PLSx3w modemsTheodore A. Roth2022-03-251-0/+5
| | | | Signed-off-by: Theodore A. Roth <theodore_roth@trimble.com>
* shared-qmi: ignore slot status indications until initial status is knownStephan Gerhold2022-03-231-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent ModemManager versions no longer work on the Samsung A5 (Qualcomm MSM8916) smartphone: MM ends up in an infinite loop trying to probe the modem over and over again. Looking at the debug log it seems to be related to a "Slot Status" indication that comes in during probe time and causes MM to restart the probing process: [/dev/wwan0qmi0] Sent generic request (translated)... << QMUX: service = "uim" << QMI: message = "Register Events" (0x002E) << TLV: translated = physical-slot-status [/dev/wwan0qmi0] Received generic indication (translated)... << QMUX: service = "uim" << QMI: message = "Slot Status" (0x0048) << TLV: translated = { [0] = '[ physical_card_status = 'present', ... [/dev/wwan0qmi0] Received generic response (translated)... << QMUX: service = "uim" << QMI: message = "Register Events" (0x002E) << TLV: translated = SUCCESS [modem42] registered for slot status indications [/dev/wwan0qmi0] Sent generic request (translated)... << QMUX: service = "uim" << QMI: message = "Get Slot Status" (0x0047) [modem42] received slot status indication [modem42] An active slot had a status change, will reprobe the modem <infinite loop> The "Slot Status" indication (uim_slot_status_indication_cb) arrives immediately after starting to listen for the event, which is before ModemManager has actually loaded the initial slot status in uim_get_slot_status_ready. In this situation !slot_array_status_equal() will always cause the modem to reprobe, even though it is not necessary during the probe phase. To fix this add a simple check to uim_slot_status_indication_cb() that ignores the indication if the initial slot status was not loaded yet.
* broadband-modem-mbim: consolidate initialized SIM creation methodAleksander Morgado2022-03-221-76/+51
| | | | | The logic to create a new SIM object from the slot status info was used in several places.
* broadband-modem-mbim: update sim-type and esim-status of inactive slotsom2022-03-223-17/+52
| | | | | During initialization if the number of slots is more than 1 then update the sim-type and esim-status of the inactive slot as well.
* telit: fix mode 'any' setting with AT commandsDaniele Palmas2022-03-184-16/+52
| | | | | When setting mode 'any' with +WS46 command the supported modes should be considered for choosing the at command correct argument.
* test,modem-helpers: add test for the EM9191 COPS=? responseAleksander Morgado2022-03-161-0/+23
| | | | | | Including 5GNR network reporting (act=12) https://forum.sierrawireless.com/t/5g-network-scan-with-the-em9191-operation-not-allowed/26374/9
* modem-helpers: improve and fix COPS=? numeric fields parsingAleksander Morgado2022-03-165-48/+54
| | | | | | | | | | | | | 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.
* modem-helpers: act given in COPS=? may have more than one digitAleksander Morgado2022-03-161-1/+1
| | | | | The new 5GNR related values are >= 10, so don't expect one single digit (\d), expect one or more (\d+).
* systemd: don't run ModemManager in containersSimon Deziel2022-03-141-0/+1
| | | | | | | | | | | | | | | | | | | | | This assumes the needed modem hardware is typically not available inside containers. If however, the local admin configures the container to get access to the hardware in question, ModemManager can be instructed to run in that specific container by doing: `sudo systemctl edit ModemManager.service` Then entering the following text in the editor: [Unit] # Remove condition of "not container" ConditionVirtualization= Upon saving/exiting, ModemManager can then be started with: `sudo systemctl start ModemManager.service` Signed-off-by: Simon Deziel <simon@sdeziel.info>
* modem-helpers: Consider minimum ID when choosing best profileSven Schwermer2022-03-091-0/+5
| | | | | | | | | | | | | | | | | | | +CGDCONT? may list profiles with IDs that are illegal to write, i.e. +CGDCONT=? returns a minimum ID larger than some of the existing profiles. E.g. for Fibocom L610-EU, +CGDCONT=? returns +CGDCONT: (1-7),"IP",,,(0-3),(0-4) +CGDCONT: (1-7),"IPV6",,,(0-3),(0-4) +CGDCONT: (1-7),"IPV4V6",,,(0-3),(0-4) +CGDCONT: (1-7),"PPP",,,(0-3),(0-4) +CGDCONT: (1-7),"Non-IP",,,(0-3),(0-4) while the default EPS bearer is established at profile 0: +CGDCONT: 0,"IP","xxx","xxx.xxx.xxx.xxx",0,0 [...] Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
* fibocom: new shared interface for common logicAleksander Morgado2022-03-099-297/+404
| | | | | | 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.
* fibocom: toggle modem power after attach APN on mbimJack Song2022-03-095-6/+284
|
* mm-shared-qmi: Return an error in load_current_capabilities() if none is found.Prakash Pabba2022-03-091-3/+8
|
* fibocom: Add reset functionalitySven Schwermer2022-03-091-0/+26
| | | | Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
* broadband-bearer: remove unused cid_selection_3gpp() methodAleksander Morgado2022-03-081-11/+0
| | | | | It was replaced by the profile management operations instead in the 1.18 release.
* intel: custom setup for all available AT portsAleksander Morgado2022-03-071-1/+30
| | | | Fully disable send delay as we're using AT ports via the new WWAN subsystem.
* xmm: setup single GPS control port exclusivelyAleksander Morgado2022-03-071-29/+37
| | | | | | 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.
* xmm: prefer port flagged as AT_GPS_CONTROL to manage the GNSS engineAleksander Morgado2022-03-071-6/+10
| | | | | Use the new AT_GPS_CONTROL udev tag to decide which is the best port to manage the GNSS engine.
* api: allow tagging AT ports as GPS controlAleksander Morgado2022-03-072-0/+20
| | | | | There are devices with multiple AT ports where only one of them is supposed to be used for GNSS control (and data).
* intel: inherit GNSS location support from the shared XMM interfaceAleksander Morgado2022-03-073-2/+51
| | | | | | | | 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.
* intel: periodic signal checks disabled by defaultAleksander Morgado2022-03-071-0/+1
| | | | As we can rely on async MBIM notifications.
* intel: SIM hot swap supported by defaultAleksander Morgado2022-03-071-0/+2
|
* intel: avoid attempting QMI over MBIM in non-Qualcomm deviceAleksander Morgado2022-03-071-0/+3
|
* intel: disable data over TTY by defaultAleksander Morgado2022-03-071-0/+1
| | | | Only data over NET is expected
* intel: new MBIM capable devicesom2022-03-075-2/+121
|
* intel: new plugin for PCI devices with vendor id 0x8086som2022-03-077-0/+166
| | | | | For now, just detecting the device and creating generic MBIM or AT based modems.
* build,meson: Fix daemon enums dependenciesIñigo Martínez2022-03-012-11/+12
| | | | | | | | | | meson generates the `mm-daemon-enums-types` source and header files. These are used when building `ModemManager` executable and different plugins. However, these enums are only stated as dependencies on the `ModemManager` executable build. This has been fixed by also adding the generated files targets as dependencies in the required plugins.
* plugins: Fix port enums includesIñigo Martínez2022-03-016-10/+6
| | | | | | | | | | | | | The `broadmobi`, `dlink`, `telit` and `tplink` plugins include the `mm-port-enums-types.h` header. However, they do not use any symbol defined there. The `huawei` plugin as includes the `mm-port-enums-types.h` header but it does not include the build targets as dependencies. These issues have been fixed by removing the unnecessary includes from `broadmobi`, `dlink`, `telit` and `tplink` plugins and by including the enums build target in the `huawei` target.
* broadband-modem-qmi: avoid the deprecated ↵Aleksander Morgado2022-02-281-7/+6
| | | | QmiMessageDmsGetStoredImageInfoInput type
* shared-qmi: use the new QmiSlotEidElement typeAleksander Morgado2022-02-281-5/+5
| | | | This type was introduced to avoid having GArrays of GArrays in libqmi.
* shared-qmi: avoid the deprecated QmiConfigTypeAndId typeAleksander Morgado2022-02-281-18/+8
| | | | | | This type was a JSON description bug in libqmi, it should have never been a struct by itself. This was changed in libqmi by the 1.31.3 snapshot, so let's use the new methods instead of the deprecated ones.
* build: require libqmi 1.31.3Aleksander Morgado2022-02-282-2/+2
| | | | | In order to use the new methods that avoid intermediate structs like QmiConfigTypeAndId.
* fcc-unlock: Make scripts POSIX shell compatibleSven Schwermer2022-02-253-11/+11
| | | | | | | | This allows us to not rely on bash which may not be available on constrained systems, e.g. Yocto-built embedded systems. The scripts now pass shellcheck. Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
* fibocom: remove executable bit from rules fileguihkx2022-02-191-0/+0
| | | | | | This silents a warning given by udev: Configuration file /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules is marked executable. Please remove executable permission bits. Proceeding anyway.
* broadband-modem-mbim: include puk locks in facilitiesMichal Mazur2022-02-171-3/+49
| | | | | | | | The MBIM command PIN LIST returns only status of pin locks and omits puk-locked facilities. This caused the pop-up window for unlocking PUK is not shown after reboot. Currenty active PUK lock has to be obtained using additional call for PIN command but only single facility is supported this way.
* modem-helpers-mbim: add pin type to 3gpp facility converterMichal Mazur2022-02-172-0/+39
|
* charsets: set error if UTF-8 validation failsAleksander Morgado2022-02-171-4/+11
| | | | | | | Otherwise, mm_modem_charset_bytearray_to_utf8() may return NULL without error set, and that will trigger a crash in the caller. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/511