Commit Graph
9469 Commits
Author SHA1 Message Date
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
Dan Williams ff6a1ec9e6 Merge request !1414 from 'fix/typo'
iface-modem-location: Fix typo in error message

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1414
2025-11-24 23:20:50 -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
Dan Williams 2a4c7e3a5b Merge request !1409 from 'fix/engine-unlock'
shared-qmi: unlock location engine at modem start

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1409
2025-10-20 15:33:28 -05: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
Dan Williams f2318ecc7b Merge request !1365 from 'fix-generic-virtual'
Fix generic driver not attaching to virtual ports

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1365
2025-10-20 15:18:57 -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
Dan Williams a2ed571ccf Merge request !1411 from 'main'
sim-mbim: fix `preload_cancellable` bug that causes a crash

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1411
2025-10-16 07:22:47 -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 a8280207fc Merge request !1408 from 'main'
fcc-unlock 105b: Add support for Foxconn SDX55 running in USB mode

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

Closes #984
2025-10-07 08:18:55 -05:00
Kajetan Krykwiński bf67727c1c fcc-unlock 105b: Add support for Foxconn SDX55 running in USB mode
Signed-off-by: Kajetan Krykwiński <github@kitor.pl>
2025-10-07 08:14:57 -05:00
Dan Williams 7b44ca740c Merge request !1407 from 'mhi-pci-generic-driver'
broadband-modem-mbim: handle mhi-pci-generic as a valid data port driver

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1407
2025-10-07 08:11:56 -05: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
Dan Williams 72dca00e69 Merge request !1401 from 'dp/fix-mux-bearer-cleanup-assert'
base-manager: fix cleanup of multiplexed bearers

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1401
2025-10-03 12:43:23 -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
Dan Williams 8d911cdd1a Merge request !1405 from 'main'
sim-mbim: continue preload retry if previous attempt(s) fails

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1405
2025-10-01 15:32:54 -05: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
Dan Williams c6740c0a7e Merge request !1406 from 'local_br'
plugin,rolling: Add udev rules for RW101R modules.

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1406
2025-09-30 09:01:16 -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
Dan Williams 01e9b1ab48 Merge request !1404 from 'fix/whitespaces'
shared-qmi: replace tabs with whitespaces

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1404
2025-09-27 09:04:34 -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
Dan Williams af622ab19d Merge request !1403 from 'fix/supl-typo'
cli, location: Fix typo in error message

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1403
2025-09-27 09:01:02 -05:00
Andrey Skvortsov 37f73c7b6b cli, location: Fix typo in error message
Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-09-21 15:32:10 +03:00
Dan Williams a1ef6a16c4 Merge request !1400 from 'lr/intel-fibocom-l850-gl'
fibocom: Fix support for Intel-branded Fibocom L850-GL

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1400
2025-09-19 09:50:15 -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 186768a071 Merge request !1402 from 'piotrdrag/pl-update-250913'
Update Polish translation 250913

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1402
2025-09-19 09:20:28 -05:00
Piotr Drąg b3b221a458 Update Polish translation
Signed-off-by: Piotr Drąg <piotrdrag@gmail.com>
2025-09-13 11:43:49 +02:00
Dan Williams 6eaf45c194 Merge request !1399 from 'cesq-space'
modem-helpers: handle no space after "+CESQ:"

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1399
2025-09-11 08:27:15 -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
Dan Williams 672a1e29c8 Merge request !1398 from 'l10n-sv'
po: update Swedish translation

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1398
2025-09-05 19:13:35 -05:00
Anders Jonsson ae3731ca69 po: update Swedish translation
Signed-off-by: Anders Jonsson <anders.jonsson@norsjovallen.se>
2025-09-05 19:09:34 -05:00
Dan Williams 4821968fb2 Merge request !1396 from 'primary-slot-polkit'
data, polkit: Add policy rule for setting primary sim slot

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1396
2025-09-05 11:34:55 -05:00
Felipe Borges d5bee2bca6 data, polkit: Add policy rule for setting primary sim slot
Needed for exposing the modem's Primary sim slot setting in
GNOME Settings.
See https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/2867

Signed-off-by: Felipe Borges <felipeborges@gnome.org>
2025-09-05 11:31:25 -05:00
Dan Williams 2f6fc0d038 Merge request !1397 from 'piotrdrag/pl-update-250827'
Update Polish translation 250827

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1397
2025-09-05 11:23:36 -05:00
Piotr Drąg 5833887c21 Update Polish translation
Signed-off-by: Piotr Drąg <piotrdrag@gmail.com>
2025-08-28 18:28:06 +02:00
Dan Williams 9405ade83b Merge request !1395 from 'patch-2'
Add Slovenian (sl) to ModemManager

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1395
2025-08-28 09:25:46 -05:00
filmsi f5a650b9bd Upload Slovenian (sl) po file
Signed-off-by: Martin Srebotnjak <miles@filmsi.net>
2025-08-27 14:34:10 -05:00
Dan Williams 9fced3767a Merge request !1389 from 'fix/set-supl-server'
shared-qmi: fix setting URL to supl server

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1389
2025-08-16 16:23:06 -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
Dan Williams 1547c4d812 Merge request !1340 from 'qmi-gps-sdm670'
GNSS support for SDM670 devices

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1340
2025-08-16 11:36:25 -05: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 848c4a95ee Merge request !1393 from 'supl-ip-byte-order-doc'
modem-helpers: document mm_parse_supl_address()

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1393
2025-08-16 11:31:46 -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
Dan Williams c2a5b54f79 Merge request !1390 from 'fix/set-supl-server-ip'
shared-qmi: fix byteorder for supl server IP

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1390
2025-08-16 10:10:57 -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
Dan Williams 14031a4b1b Merge request !1391 from 'lang'
cbm-part: Use the correct codes for Czech and Danish

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1391
2025-08-08 21:48:29 -05: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