Commit Graph
44 Commits
Author SHA1 Message Date
Lukas Voegl 39a74ae6fb fibocom: allow QCDM
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2025-04-25 09:37:17 +02:00
Lukas Voegl 436081648b api,modem: new 'IgnoredPorts' property
Expose a new list of 'IgnoredPorts' via D-Bus and therefore remove the use of `MM_MODEM_PORT_TYPE_IGNORED`

Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2025-04-25 09:37:16 +02:00
Dan Williams 046b79a676 shared-fibocom: don't assume parent implements the firmware interface
MMBroadbandModemMbimMtkFibocom doesn't, so don't assert it.

Fixes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/975

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-04-13 13:47:57 +00:00
Aleksander Morgado 93da5e0b93 fibocom: add Sahara/Firehose support for NL668-EAU
Signed-off-by: default avatarLukas Voegl <lvoegl@tdt.de>
2025-02-21 14:08:50 +00:00
Lukas Voegl 155893ea38 broadband-modem: generic Firehose and Sahara support
Allows setting the renamed `ID_MM_QUALCOMM_FIREHOSE` and
`ID_MM_QUALCOMM_SAHARA` environment variables for all devices.

Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2025-02-21 14:08:50 +00:00
Sushrut Shree Trivedi 092439369b base-modem: add subsystem device ID property
Subsystem device ID can be used for identifying PCI modems,
so expose the property.

Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
2025-02-21 10:39:29 +05:30
Florian Eckert 33107894ee fibocom: add NL668-EAU to rules file
The NL668-EAU is a 4G, 3G, 2G CAT4 modem from fibocom.
https://www.fibocom.com/en/products/LTECat-NL668-EAU.html

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-11-08 09:05:09 +01:00
Florian Eckert cf2fd4d2e1 fibocom: add additional USB_VID for NL668-EAU
The NL668-EAU 4G, 3G, 2G CAT4 is a modem from fibocom and is using a diffrent
USB_VID for this modem. By adding the new USB_VID, the 'fibocom' plugin is
now responsible and not the 'generic' plugin.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-11-08 09:04:38 +01:00
Aleksander Morgado 8a5aab8be5 fibocom: L850 specific hack when using an AT&T 310280 SIM card
L850 modems running a firmware version less than 18500.5001.0.7 and
using AT&T SIM cards with MCCMNC 310280 do not support specifying
"partner" settings in the MBIM operation to set the LTE attach
configuration.
2024-09-11 11:01:18 +00:00
Aleksander Morgado 2b3f4f22c2 fibocom: NL668 ttys are managed by the option driver
So they are ttyUSB instead of ttyACM.
2024-08-23 16:26:34 +00:00
Aleksander Morgado e30ed1bc47 fibocom: add L850 AT port hints
Just so that we make sure no other probing type is tried with them.
2024-08-23 16:24:37 +00:00
Puliang Lu 4632af30a7 fibocom: Set FM101 AT port to ignore
MM does not need to use two AT ports at the same time.
Sending AT to both ports at the same time may cause the ports to not work.
2024-07-22 14:58:01 +00:00
Aleksander Morgado 79b0696a74 Revert "fibocom: disable CPOL features in NL668"
This reverts commit f7b351fc85.

The whole AT over MBIM support is disabled in the NL668.
2024-06-21 10:00:36 +00:00
Aleksander Morgado 06ccd09bef fibocom: disable AT over MBIM in NL668
The AT over MBIM support is exposed as a supported service, but the
underlying implementation is not good enough.
2024-06-21 09:57:19 +00:00
Aleksander Morgado f7b351fc85 fibocom: disable CPOL features in NL668
Running +CPOL? in the NL668 using AT over MBIM seems to trigger a
firmware crash. Let's disable the feature altogether in this device
for this reason.
2024-06-19 13:16:43 +00:00
Aleksander Morgado b3277a8563 port-mbim-fibocom: fix duplicated GError free 2024-05-30 08:46:54 +00:00
Aleksander Morgado 800c2bb02a fibocom: MBIM in shared utils is optional 2024-05-29 09:50:05 +00:00
Aleksander Morgado a063e2a15c fibocom: remove custom initial EPS bearer management
The implementation in the generic MMBroadbandModem object should fit
well instead of the custom implementation.

There is also no need to specify via udev tags which is the initial
EPS bearer context id, we try to automatically guess it in runtime.
2024-05-29 09:05:23 +00:00
Aleksander Morgado cf1035169c fibocom: remove custom logic to power down modem before initial EPS bearer settings update
This is now done for all modems unconditionally.
2024-05-29 08:14:03 +00:00
Aleksander Morgado c5b9effdc7 iface-modem: allow reporting the previous power state after an update
Let the caller of mm_iface_modem_set_power_state() know which was the
power state in the device before the actual update happened.

This is useful in cases where we want to temporarily switch to a given
power state (e.g. low) before returning to the original power state.
2024-05-29 08:02:40 +00:00
Aleksander Morgado 5a9634773b shared-fibocom: use G_DECLARE|DEFINE_INTERFACE() macros 2024-05-06 13:45:39 +00:00
Aleksander Morgado e535c90f5f iface-modem-firmware: use G_DECLARE|DEFINE_INTERFACE() macros 2024-05-06 13:27:05 +00:00
Aleksander Morgado f033a0a9f2 iface-modem-3gpp-profile-manager: use G_DECLARE|DEFINE_INTERFACE() macros 2024-05-06 13:27:04 +00:00
Aleksander Morgado ab6e4bf391 iface-modem-3gpp: use G_DECLARE|DEFINE_INTERFACE() macros 2024-05-06 13:27:04 +00:00
Aleksander Morgado 35c0a6905b iface-modem: use G_DECLARE|DEFINE_INTERFACE() macros 2024-05-06 13:27:04 +00:00
Aleksander Morgado 9aab129759 iface-port-at: use G_DECLARE|DEFINE_INTERFACE() macros 2024-05-06 13:27:04 +00:00
Aleksander Morgado c66a6b89ec fibocom: create custom MBIM port object with potential AT support 2024-04-23 07:25:12 +00:00
Aleksander Morgado 586f98f71d fibocom: change parent class peeker method
Use the more generic MMBaseModemClass instead of MMBroadbandModemClass.
2024-04-23 07:25:12 +00:00
Aleksander Morgado 588d36be91 broadband-modem-fibocom: don't assume primary port always exists 2024-04-12 01:17:14 +00:00
Aleksander Morgado 98b99bdafb fibocom: always report primary port in the firmware interface 2024-04-12 01:17:14 +00:00
bolan wang 532472f686 plugins,fibocom: Add the udev rules for FM135 modules
This patch add fibocom FM135 to 77-mm-fibocom-port-types.rules file. The vid and pid of the module is "2cb7 0115".
2024-03-13 10:56:16 +00:00
Aleksander Morgado 4b0b9dde02 fibocom: setup common shared setup ports in all modems
Make sure all Fibocom modem implementations use the shared port setup
logic that adds the SIM READY URC ignore rule.
2024-03-13 03:52:35 +00:00
Aleksander Morgado 8512ff4442 fibocom: setup shared fibocom management on AT-only modem
The generic MMBroadbandModemFibocom object uses the shared Fibocom
settings to load the update settings. This logic does not use the
Private info right now, but there is no reason why it wouldn't do it
in the future. Also, for consistency, it makes sense to ensure the
shared interface setup is the same in all implementations, we should
not have only some allowing to initialize the Private info.
2024-03-13 03:52:35 +00:00
Aleksander Morgado b99757a1f4 fibocom: don't be strict on required drivers
Requiring an explicit set of drivers should only be done when we have
different plugins supporting different types of devices of the same
manufacturer based on the drivers in use (e.g. as in the Sierra case).

When the plugin includes a list of required drivers, the plugin filter
will only assume the plugin can be used if at least one of the
available ports is exposed with one of the drivers in the list.

Because of this, if we start probing some ports before all the
expected ports are reported, we may end up not selecting a given
plugin just because the driver match should have been done in a
not-yet-notified port.

E.g. on system boot:
 * ttyACM0 is notified.
 * min probing time elapses so ttyACM0 probing starts
 * Fibocom plugin is not selected for ttyACM0 as no matched
   driver ("cdc_acm") is given in the the list of drivers of the
   plugin.
 * cdc-wdm0 and wwan0 drivers are notified.
 * MM creates generic MBIM modem with the Fibocom plugin, but without
   XMM features support, because the ttyACM0 port probing was not done
   by the Fibocom plugin.

And if we reset the modem after that:
 * ttyACM0 is notified.
 * cdc-wdm0 and wwan0 drivers are notified.
 * min probing time elapses so probing starts for all ports
 * Fibocom plugin is selected for all port probings as "cdc_mbim" is
   listed in the list of drivers of the plugin.
 * MM creates XMM-capable MBIM modem with the Fibocom plugin.
2024-03-11 12:36:15 +00:00
Madhav 1655d0e014 bearer-mbim: When an IP type is unspecified in the profile, default to IPv4v6 (dual-stack)
To address limitations in reading IP_TYPE information (in some cases) for profile requests,
default to IPv4v6 (dual-stack) for profile requests and IPv4 only for user requests (to ensure backward compatibility)
if nothing specific is requested. This ensures network compatibility across IPv4 and IPv6 networks,
preventing potential connectivity issues in IPv6 environments.
2024-01-25 21:52:31 +00:00
Nagi Marupaka 97ac3e8448 fibocom: re-enable the modem after an attempt to set initial EPS bearer irrespective of success or failure of the operation 2023-12-13 10:10:20 +00:00
Puliang Lu 9db7b18f4d fibocom: Added support for firmware objects
Added load_update_settings, load_update_settings_finish
Add support for fastboot flash
2023-10-18 21:01:35 +00:00
Lukas Voegl 8cd1c1bdb9 api,modem: new 'Physdev' property
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2023-09-18 10:53:12 +02:00
Aleksander Morgado 50caac4bdd fibocom: disable multiplexing support in NL668
The NL668 doesn't seem to support multiplexing, as it fails to
transfer data even in the one multiplexed PDN case.
2023-08-05 22:08:01 +00:00
diekleinekuh 3c2849d722 fibocom: allow qmi over mbim 2023-06-24 22:52:43 +00:00
Aleksander Morgado 2ea67ae3e8 fibocom: limit multiplexing in NL668 to one single PDN
NL668 doesn't correctly support more than one multiplexed PDN
connection. Limit this explicitly so that it never attempts to use
more than one.

   #  mmcli -m a --simple-connect="multiplex=requested,apn=internet,ip-type=ipv4v6,apn-type=default"
   successfully connected the modem

   # mmcli -m a --simple-connect="multiplex=requested,apn=internet2,ip-type=ipv4v6,apn-type=default"
   error: couldn't connect the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Invalid bearer properties: Maximum number of multiplexed bearers reached'
2023-06-16 21:00:16 +00:00
Aleksander Morgado 1dd70be4c8 plugins: setup new helper macros to define shared utils 2023-01-03 13:56:25 +00:00
Aleksander Morgado f0a9f09558 plugins: setup new helper macros to define plugins
We also remove the plugin headers completely as they are not really
required anywhere.
2023-01-03 13:56:25 +00:00
Aleksander Morgado e14b904cbd build: move plugins directory to src/plugins
We are going to allow including the plugin sources built within the
ModemManager daemon binary; moving the sources within the daemon
sources directory makes it easier.
2023-01-03 13:56:25 +00:00