Commit Graph
5353 Commits
Author SHA1 Message Date
Barnabás Pőcze 62cc4de68e broadband-modem-mtk-legacy: fix GError memory leak
If the error matches, then a `+CIMI` command is sent to the device and
processing continues. However, the current error (for the `+CPIN?` command)
is not freed or propagated, fix that.

Fixes: 5c1fcbfe4a ("mtk-legacy: read IMSI if CPIN response is an error")
Signed-off-by: Barnabás Pőcze <pobrn@protonmail.com>
2026-05-24 08:12:41 -05:00
Alexander Couzens 31cbf9c1be ModemManager: handle QMI_DMS_OPERATING_MODE_SHUTTING_DOWN similar as OFFLINE
Found and tested on Oneplus 6T with postmarketOS.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2026-05-12 12:44:49 -05:00
Wenbin f6676cc5f3 plugin,rolling: Add udev rules for RW135R modules.
The Rolling needs to add the udev rules for supporting RW135R modules.

Signed-off-by: Wenbin <ywbjob@163.com>
2026-05-12 12:30:53 -05:00
Aleksander Morgado 44330936c6 rolling: fix single plugin build
The MTK specific modem object should be included in the 'mtk' shared
utils, so that they're available to other plugins.

Signed-off-by: Aleksander Morgado <aleksandermj@google.com>
2026-04-22 14:27:38 +00:00
xuhongxing b10139f96b Rolling: Add modifications related to the rw350-usb project
1.Modify rule files for the 33f8/0802 MI interface
2.Modify the rolling plugin code to share and reuse code from the mtk plugin

T: Bus=02 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 5 Spd=5000 MxCh= 0
D: Ver= 3.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
P: Vendor=33f8 ProdID=0802 Rev=00.01
S: Manufacturer=Rolling Wireless S.a.r.l.
S: Product=USB DATA CARD
C: #Ifs=10 Cfg#= 1 Atr=a0 MxPwr=896mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
E: Ad=82(I) Atr=03(Int.) MxPS= 64 Ivl=32ms
I: If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs
E: Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=06(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=87(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 7 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=07(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=88(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 8 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=08(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=89(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 9 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=09(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=8a(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms

Signed-off-by: xuhongxing <James.Xu@fibocom.com>
2026-04-22 18:26:57 +08:00
Aleksander Morgado b6d53915a6 port-qmi: add missing QMI_DATA_ENDPOINT_TYPE_ETHERNET
Fixes build with latest libqmi.

Signed-off-by: Aleksander Morgado <aleksandermj@google.com>
2026-04-15 12:54:09 +00:00
Aleksander Morgado c34b326709 modem-helpers-qmi: add missing QMI_WDS_PDP_TYPE_NON_IP check
Fixes build with latest libqmi.

Signed-off-by: Aleksander Morgado <aleksandermj@google.com>
2026-04-15 12:46:28 +00:00
Guido Günther b59e0acb08 mm-cbm-part: Try harder to convert message text
Current cell broadcast messages from missile warnings in Israel
have an addition `00` at the end to pad for an even byte number.

This breaks conversion making the whole message fail conversion. As this
is a 15 part message in 3 languages the whole notification is lost in
this case.

Try harder to convert the message and recover even partial bits.

Closes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/1042
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2026-03-24 20:53:23 -05:00
Lorenzo Medici 49fb75cd94 cinterion: add USB interface number 0x05 for TX62 modem
Signed-off-by: Lorenzo Medici <lorenzo.medici@canonical.com>
2026-03-20 16:24:04 +02:00
Wenbin 387c41cb04 rolling: update RW101 port type hints
The port type hints for the RW101-cat6 and RW101-cat12 have been
updated, with USB interface #2 now designated as both the AT primary
port and fastboot port.

Signed-off-by: Wenbin <ywbjob@163.com>
2026-02-03 11:49:42 +01:00
Daniele Palmas aa2aa54748 telit: add port hints for FN990B40 rmnet and MBIM compositions
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2026-01-30 16:09:01 +01:00
Daniele Palmas 6131303fb2 telit: add port hints for FE910C04 rmnet and MBIM compositions
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2026-01-30 16:08:37 +01:00
Daniele Palmas c1386905f3 telit: add port hints for FE990B40 rmnet and MBIM compositions
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2026-01-30 16:08:12 +01:00
Daniele Palmas 8f4e8bd24c telit: add port hints for FN920C04 rmnet and MBIM compositions
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2026-01-30 16:07:52 +01:00
Andrey Skvortsov c0f0c02ac1 tests: add tests for location-cache
only GGA NMEA sentences are supported by current implementation of
MMLocationGpsRaw. RMC and GLL messages are added, but currently test
are negative.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2026-01-10 02:04:10 +03:00
Andrey Skvortsov 8b6116fe6c shared-qmi: handle inject position requests from the modem
To be able to have quick position fix GNSS engine needs to know
 - predicted orbits data,
 - current time,
 - approximate position.
Modem sends indications with requests, when it needs corresponding
information. Predicted orbits can be injected using
'mmcli -m any --location-inject-assistance-data=<file>'. But to
accelerate time to first fix after cold start extra information is
needed like time and coarse position.

Inject position requests are received, when GPS session is initiated
using QMI_LOC_START. In inject position request modem sends
information about its last known position. If last known position is
zero, when this is a cold start and inject position is needed to
improve TTFF.
Last position from the modem is cached in ModemManager and is injected
next time, when modem requests it. For example, if modem is restarted.

When timestamp on injected position is too old, than position is
ignored and location engine does cold start. Therefore current time is
used for injected position.

When injected position is far away the actual one (for example, after
flight), after some time location engine falls back to cold start.

Tested on Quectel EG25-G.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2026-01-10 02:04:10 +03:00
Andrey Skvortsov 8ac3dfb955 location-cache: add class to store cached location
This class allows to preserve cached position across ModemManager restarts.
Cached location can be used to improve time to first fix after device
start by injecting coarse position into location engine. Since there
wasn't any fix yet, position in ModemManager is unknown. To fix this
cached location is saved on disk (/var/lib/ModemManager/location.ini)
when location session is stopped or ModemManager is stopped and loaded
on the next start from the file.

install_emptydir is introduced in meson 0.60.

Distributions has to create directory to store cached location in
packaging, because ModemManager runs under systemd isolation with
limited rights and it can't create this directory by itself.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2026-01-10 02:04:10 +03:00
Andrey Skvortsov 81101b0147 shared-qmi: handle inject time requests from the modem
To be able to have quick position fix GNSS engine needs to know
 - predicted orbits data,
 - current time,
 - approximate position.
Modem sends indications with requests, when it needs corresponding
information. Predicted orbits can be injected using
'mmcli -m any --location-inject-assistance-data=<file>'. But to
accelerate time to first fix after cold start extra information is
needed like time and coarse position. This commit injects UTC time.

UTC time inject requests are received, when GPS session is initiated
using QMI_LOC_START.

Tested on Quectel EG25-G.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2026-01-10 02:04:10 +03:00
Dan Williams 061a9956d0 broadband-modem,pantech: network time broken on UML290
UML290 with firmware L0290VWBB12F.248 doesn't support QMI network
time and crashes when asked for AT network time too quickly after
being plugged in.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2026-01-09 05:59:17 -06:00
Daniele Palmas 4678f3226e telit: add ID_MM_INITIAL_QMAP_MUX_ID udev tag to LE910Cx
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2025-11-24 23:50:03 -06:00
Daniele Palmas d2de8ff226 port-qmi: allow setting initial mux-id value when using rmnet multiplexing
Qualcomm suggests to use mux id values >= 0x81: though this does not
seem a strict mandatory rule, there are scenarios in which the usage of
a specifix mux id is required otherwise various kind of issues could
happen (e.g. call failure, limited throughput...).

A new ID_MM_INITIAL_QMAP_MUX_ID udev tag allows setting the first initial
mux id value to be used when creating the multiplexed data connection.

Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2025-11-24 23:50:03 -06:00
Dan Williams c1112a2ee4 modem-helpers-qmi: update for QMI_NAS_RADIO_INTERFACE_NO_CHANGE
In latest libqmi.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-11-24 23:30:32 -06:00
Andrey Skvortsov 4023c61c71 iface-modem-location: Fix typo in error message
Fixes: 091bf4dbd8 ("shared-qmi: implement LOC-based GPS/A-GPS support")

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-11-05 23:29:36 +03:00
Andrey Skvortsov 9c4aeeb33a shared-qmi: unlock location engine at modem start
On SDM845 (OP6T) modem always starts with engine lock 'all'.
It doesn't allow to read assistance server settings at the beginning.
QMI call 'Get Predicted Orbits Data Source' (0x0036) fails with general
failure. As a result it's not possible to inject assistance data using
'mmcli -m any --location-inject-assistance-data=<file>'.

Commit 90843b7a0d ("shared-qmi: Lock and unlock GPS engine when
starting and stopping") unlocks engine on GNSS start, that allows
geolocation to work on SDM845, but it locks engine back on GNSS stop.
As a result after GNSS stop it's not possible to inject XTRA data again.

On EG25-G engine lock settings is stored in NV storage and is preserved after
modem restart. By default engine lock is 'none'. But currently on GNSS
stop this value is changed to 'all', that blocks location engine.
If previous ModemManager version is installed after
stopping geolocation and locking the engine, geolocation will not
work, since the engine is still locked and modem restart will not help.

This commit unlocks engine on modem start so all following operations
with an engine succeed. Engine isn't locked back.

Tested on SDM845 (OP6T) and Quectel EG25-G.

Fixes: 90843b7a0d ("shared-qmi: Lock and unlock GPS engine when starting and stopping")

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-10-20 15:30:54 -05:00
Sonya Sireneva 7e5e6c6912 Fix generic driver not attaching to virtual ports
Since c2e3a8c10e, the generic plugin was
not able to attach to virtual ports, because they have no associated
driver, and the probe fails with "port filtered as couldn't retrieve
driver". It seems that this driver check was accidentially introduced
and is not really necessary, as there isn't a special "XMMRPC driver"
to blacklist.

Signed-off-by: Sonya Sireneva <sleirsgoevy@gmail.com>
2025-10-20 15:16:32 -05:00
Rukun Mao 469c686504 sim-mbim: fix preload_cancellable bug that causes a crash
In merge request !1405, when handling subscriber_ready_status_ready()
fails, it exits early and allows preload retry without resetting
`self->priv->preload_cancellable`. When the preload_subscriber_info() runs
again, it fails at g_assert check and causes a crash.
Before !1405, `self->priv->preload_cancellable` is reset within
application_list_query_ready().

Signed-off-by: Rukun Mao <rmao@google.com>
2025-10-15 18:24:19 +00:00
Dan Williams c3ef78cc6c broadband-modem-mbim: handle mhi-pci-generic as a valid data port driver
mhi_wwan_mbim ends up being detected as mhi-pci-generic, so we need to
look for that in addition to cdc_wwan when doing MBIM data port stuff.
Otherwise devices (various Foxconn X55/X72, Cinterion MV3x, Quectel
EM1xx, Telit FN990) that expose the IP_HW0_MBIM MHI channel won't
correctly clean up data ports on startup, and may not correctly
handle bearer multiplexing.

mhi_net is only used for QMI devices with rmnet so it shouldn't
be involved in the MBIM data path at all.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-10-03 16:18:48 -05:00
Daniele Palmas 0edcb916ad base-manager: fix cleanup of multiplexed bearers
Cleaning up multiple active multiplexed bearers causes an assert in
mm_iface_modem_count_bearers since the max number of active bearers
is not properly determined.

Rework the management of the flags in order to better match their
intents, considering that MULTIPLEXED is a subset of ACTIVE/CONNECTED.

Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2025-10-03 10:51:59 +02:00
Rukun Mao 9ec1d25607 sim-mbim: continue preload retry if previous attempt(s) fails
Before the change, preload is attempted once regardless of its
results. When the first attempt fails, it got stuck and can not get valid
SIM info.

Signed-off-by: Rukun Mao <rmao@google.com>
2025-10-01 15:29:58 -05:00
Vanillan Wang d2f4ca8a5b plugin,rolling: Add udev rules for RW101R modules.
The Rolling needs to add the udev rules for supporting RW101R modules.

Signed-off-by: Vanillan Wang <vanillanwang@163.com>
2025-09-30 08:58:49 -05:00
Andrey Skvortsov c0933d2f18 shared-qmi: replace tabs with whitespaces
Fixes: 103eb9cf29 ("shared-qmi,modem-helpers-qmi: Add support for NR5G band preference")

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-09-27 09:01:57 -05:00
Lubomir Rintel 76c055dcef fibocom: Add rules with hints for L850-GL (Intel)
The device would eventually be automatically probed. Add hints anyway,
as not to waste time with the generic probe.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
2025-09-19 09:46:52 -05:00
Lubomir Rintel f79cf7c78e fibocom: Add vendor ID for Intel
Seen on an OEM modem labeled as "Fibocom L850-GL":

  ID 8087:095a Intel Corp. MODEM + 2 CDC-ACM + 3 CDC-NCM + SS

XMM-based modem, detected fine by the plugin:

  [ttyACM2/at] <-- 'AT'
  [ttyACM2/at] <-- '<CR><CR><LF>OK<CR><LF>'
  [ttyACM2/probe] port is AT-capable
  [ttyACM2/probe] probe step: XMM
  [ttyACM0/at] <-- '<CR><LF>OK<CR><LF>'
  [ttyACM0/probe] port is AT-capable
  [ttyACM0/probe] probe step: XMM
  [ttyACM2/at] --> 'AT+XACT=?<CR>'
  [ttyACM0/at] --> 'AT+XACT=?<CR>'
  [ttyACM2/at] <-- 'AT+XACT=?'
  [ttyACM2/at] <-- '<CR><CR><LF>+XACT: (0-6),(0-2),0,1,2,4,5,8,101,102,103,104,105,107,108,112,113,117,118,119,120,126,128,129,130,141,166<CR><LF><CR><LF>OK<CR><LF>'
  [ttyACM2/probe] modem is XMM-based
  [ttyACM0/at] <-- '<CR><LF>+XACT: (0-6),(0-2),0,1,2,4,5,8,101,102,103,104,105,107,108,112,113,117,118,119,120,126,128,129,130,141,166<CR><LF><CR><LF>OK<CR><LF>'
  [ttyACM0/probe] modem is XMM-based
  [device /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3] creating modem with plugin 'fibocom' and '6' ports (8087:095a)
  [plugin/fibocom] (fibocom) XMM-based Fibocom modem found...

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
2025-09-19 09:46:52 -05:00
Dan Williams ee75d23f00 modem-helpers: handle no space after "+CESQ:"
See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1277
for more details.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-09-11 08:24:42 -05:00
Andrey Skvortsov 0e1bfdb5b6 shared-qmi: fix setting URL to supl server
Function mm_parse_suple_address returns TRUE on valid input data
regardless of its type (URL or IP). As a result
qmi_message_loc_set_server_input_set_ipv4 was always called on valid
data. If URL was provided, then 0.0.0.0 ip address was sent to the
modem instead of provided URL.

Fixes: 6e84f3d459 ("iface-modem-location: validate SUPL server address")

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-08-16 21:02:14 +00:00
Richard Acayan 0d69304702 shared-qmi: Register NMEA types indication callbacks earlier
It might be too late to register the indication callbacks after the
response is received. Register the callbacks when the request is made so
an requested indication will always be handled.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
2025-08-16 11:32:16 -05:00
Richard Acayan 90843b7a0d shared-qmi: Lock and unlock GPS engine when starting and stopping
Newer modem firmware requires the use of the GPS engine lock, which
controls what the GPS engine can do. Set the GPS engine lock when
appropriate to handle this newer firmware.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
2025-08-16 11:32:16 -05:00
Richard Acayan b529b69fb6 shared-qmi: always set NMEA types
By default, the Pixel 3a only emits $PQXXX traces, even when all the
desired traces are reported as enabled. A request to set the NMEA types
must still be sent to enable the GGA/GSA/GSV traces. Remove the
optimization that prevents the request from happening automatically.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
2025-08-16 11:32:16 -05:00
Dan Williams aca647cf9d modem-helpers: document mm_parse_supl_address()
More specifically, that the returned IP address is in network
byte order.

See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1390

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-08-16 11:22:02 -05:00
Andrey Skvortsov f51cc9488b shared-qmi: fix byteorder for supl server IP
It was noted, that when supl server is set using IP address. Modem
doesn't connect to the SUPL server anymore. When IP address is inverted,
then modem connects to SUPL server successfuly.

IP address is stored as uint32_t. According to Telit's documentation [1]
numeric values are encoded in little-endian format in QMI.

After converting IP address from string to binary using inet_pton
IP address is stored in network byte order (big-endian). Therefore it's
needed another convertion from big-endian to host endianness. Final
conversion from host endianness to endianness needed for QMI will be
done in generated
qmi_message_pds_set_agps_config_input_set_location_server_address.

Vendor's Android GNSS hal uses htonl() to convert from struct in_addr
(already in big-endian) before sending QMI request as well [2].

Tested on Quectel EG25-G and SDM845 (OnePlus 6T).

1. FN980 Family Telit Proprietary QMI Command Reference Guide. 4.1.3.1 Byte Ordering
2. https://github.com/ugly-kid-af/device_xiaomi_violet/blob/snow/gps/gnss/GnssAdapter.cpp#L1110

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-08-10 21:05:13 +00:00
Guido Günther ef757daa1a cbm-part: Use the correct codes for Czech and Danish
Use the ones from the iso639 set 1.

Fixes: 0bd0cad70 ("cbm-part: Handle additional coding schemes and parse languages")

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-08-08 21:45:50 -05:00
Florian Eckert 1a9602ab6a cinterion: ignore carrier revision
MV31 MBIM modem firmware revisions are not matched with carrier configs.
Different VoLTE profiles might be selected by the user causing
the carrier config revision to change.

Since fwupd uses this string for firmware updates, it gets confused and
thinks the user has an update available.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2025-07-30 12:41:22 -05:00
Florian Eckert 5d4b0d3516 cinterion: add hardware revision read via AT for MV31 and MV32
Reading the hardware revision via the mbim interface returns an incorrect
hardware revision string. The output is always set to
'h/w revision: Thales Snapdragon X55'

  Hardware |            manufacturer: Cinterion
...
           |            h/w revision: Thales Snapdragon X55

This is an incorrect value returned by the MBIM interface. The MV31 and MV32
does have a dedicated AT Command to get the correct hardware revision
via 'AT+SKUID'. If the hardware revision is read via the AT command, the
output looks as follows.

  Hardware |            manufacturer: Cinterion
...
           |            h/w revision: V065

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2025-07-30 12:41:22 -05:00
Florian Eckert a107de32a8 cinterion: add revision read via AT for the MV31 and MV32
Reading the revsion via the mbim interface returns an incorrect firmware
revsion string. This contains a '\n' character so that the revision looks
like this in 'mmcli'.

Hardware  |            manufacturer: Cinterion
          |            model: Cinterion PID 0x00F1 USB Mobile Broadband
          |            firmware revision: FDE.F0.3.0.1.1.DT.005
          |            062
          |            carrier config: DT

The correct string without '\n' is returned via the AT interface. To fix
the error, the 'mbim' revision interface is overwritten with an AT call
if a MV31 or a MV32 is detected. So we get the correct output via 'mmcli'.

Hardware  |            manufacturer: Cinterion
          |            model: Cinterion PID 0x00F1 USB Mobile Broadband
          |            firmware revision: FDE.F0.3.0.1.1.DT.005.062
          |            carrier config: DT

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2025-07-30 12:41:22 -05:00
Florian Eckert ebebce6111 cinterion: add MV31 to the rules file
Add the missing udev rules for the MV31 from 'Telit' which uses the
cinterion plugin.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2025-07-30 12:41:22 -05:00
Florian Eckert f4a1c0fcec cinterion: add MV32 to the rules file
Add the missing udev rules for the MV32 from 'Telit' which uses the
cinterion plugin.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2025-07-30 12:41:22 -05:00
Dan Williams 01208cc6c0 base-manager: increase suspend timeout for each active bearer
Some modems can take a very long time (~20s) to reply to bearer
disconnect requests especially in marginal signal situations where
the modem must resend messages to the network after internal
timeouts. Give the modem a chance to suspend successfully if
there are active bearers.

Related: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1311#note_2938638

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-07-21 15:12:01 -05:00
Dan Williams 11489152d8 sleep-context: add ability to increase timeout
Track when the timeout was started, so that if it needs to be increased
we can calculate how long the new timeout should be. Then cancel the
original timeout and start a new one with.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-07-21 15:11:16 -05:00
Dan Williams f7897daeb5 broadband-modem,iface-modem: move bearer counting to interface and generalize
Allow counting more kinds of bearers than just multiplexed ones.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-07-21 15:11:16 -05:00
Daniele Palmas 0e1ba4c530 modem-helpers-qmi: support EUTRAN bands 85 and 106
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2025-07-09 10:41:43 +02:00