Commit Graph
100 Commits
Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Dan Williams 5121a9413a Merge request !1382 from 'fix-port-array'
cli: free ignored ports

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1382
2025-08-04 09:51:52 -05:00
Dan Williams d9d1907157 Merge request !1367 from 'mr/20250530-cinterion'
cinterion: add MV32/MV31 udev rules and AT workarounds

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1367
2025-07-30 13:00:03 -05:00
Dan Williams 70ad037146 Merge request !1386 from 'feat/access-to-signal-threshold'
polkit,conf: give access to Signal.SetupThresholds() the same way as for Signal.Setup()

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1386
2025-07-30 12:18:11 -05:00
Dan Williams 41133db361 Merge request !1388 from 'fix/cell-info-docs'
libmm-glib,cell-info: fix documentation for some functions

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1388
2025-07-30 11:29:16 -05:00
Dan Williams ddea6c02d5 Merge request !1387 from 'fix/typos'
cli,signal: fix typo in debug message for async operations

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1387
2025-07-30 11:23:43 -05:00
Dan Williams d69dd96174 Merge request !1378 from 'suspend-bearer-timeout'
base-manager: increase suspend timeout for each active bearer

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1378
2025-07-28 09:20:50 -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
Dan Williams 6c75cbcf74 Merge request !1377 from 'dp/eutran-106-support'
add support for eutran band 106

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1377
2025-07-11 01:09:42 -05:00
Dan Williams 0ef7bf3fdb Merge request !1350 from 'local_br'
plugin,mtk: remove the relevant log prints of the device model.

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1350
2025-07-04 12:18:31 -05:00
Dan Williams 1861ae1411 Merge request !1376 from 'main'
broadband-modem: exit with error if enable() is called in enabling state

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1376
2025-07-01 22:41:59 -05:00
Dan Williams 2529159cee Merge request !1374 from 'cinterion-add-tdd-lte-bands-disabled-flag'
cinterion: add tdd_lte_bands_disabled flag

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

Closes #977
2025-06-25 08:17:22 -05:00
Dan Williams 0b2d7d6388 Merge request !1362 from 'disable-unsolicited-3gpp-events'
Disable unsolicited 3gpp events

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1362
2025-06-16 08:45:50 -05:00
Dan Williams 45d817c50f Merge request !1370 from 'base-manager-shutdown-cleanup'
base-manager: rename manager/device shutdown to manager/device cleanup

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1370
2025-06-16 08:34:33 -05:00
Dan Williams 7029cdba3e base-manager: rename manager/device shutdown to manager/device cleanup
In preparation for a "terse" mode, but also because "shutdown" was
kind of weird since we're not always shutting the modem down; sometimes
we're just putting it in low-power mode.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-06-16 08:30:30 -05:00
Dan Williams 04c5c1c31f Merge request !1373 from 'asan-ci'
Fix some leaks and run daemon asan check in CI

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1373
2025-06-14 16:16:16 -05:00
Dan Williams 38417c6520 Merge request !1280 from 'intel-rpc-xmm7360'
intel: XMM7360: unlocking/enabling RPC timeout fix and location support

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1280
2025-06-14 16:09:43 -05:00
Dan Williams 93a63c85ea Merge request !1368 from 'simtech-audio-format-dbus'
Fix setting call audio format and add Simtech audio properties support

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

Closes #996
2025-06-14 15:51:50 -05:00
Dan Williams ad23d5f22c simtech: report call audio properties if audio settings are supported
Suggested by David Timber.

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

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-06-14 15:39:43 -05:00
Dan Williams 5d663976ea voice: fix setting call audio format
MM should be updating the call audio format and port on ongoing/active
calls, not terminated ones.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-06-14 15:39:43 -05:00
Dan Williams e55dde034b Merge request !1372 from '32bit'
Fix 32bit format specifiers and don't run tests on free'd cbm part

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1372
2025-06-14 15:31:19 -05:00
Dan Williams 1bc3db766b Merge request !1369 from 'main'
foxconn: add subsystem ID support for T99W696

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1369
2025-06-14 15:26:43 -05:00
Dan Williams cf7d037ed3 Merge request !1366 from 'mr/20250530-timeout'
mm-port-serial: add new MM_SERIAL_ERROR_SEND_TIMEOUT

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1366
2025-06-02 08:46:40 -05:00
Dan Williams 37f17d4b58 Merge request !1336 from 'dtmf-serialize'
Serialize DTMF requests and allow setting DTMF duration at call creation time

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

Closes #970
2025-05-30 18:54:05 -05:00
Dan Williams dad2d49b69 tests: test call DTMF functionality
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 08:06:11 -05:00
Dan Williams ae3d37030a base-call: handle multiple DTMF characters
Send each character through the state machine one at a time. Some
modems (various Quectel ones for example) can process multiple at
the same time, and while that should be easily implemented using
the new changes to send_dtmf() it's not done in any plugin yet.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 08:02:48 -05:00
Dan Williams 56fe8e7d31 modem-helpers: add utility function to split DTMF runs
Split into groups of non-pause characters and single pause characters
by themselves and return as an array of strings.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 08:02:47 -05:00
Dan Williams 957a141e57 base-call: interpret DTMF character ',' as two-second pause
Do what other dialers do and interpret ',' as a short pause, which
helps handle automated menus.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 07:59:59 -05:00
Dan Williams 2726f8e8a2 base-call: convert DTMF tone handling to a state machine
Generalize the timeout/stop logic that QMI requires into the
base call. We'll use this to implement the pause character (,)
generically.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 07:59:59 -05:00
Dan Williams 5448a85a2b call: allow setting DTMF tone duration at call creation time
Instead of hard-coding a 500ms DTMF tone duration, let applications
use a specific duration at call setup time.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 07:59:58 -05:00
Dan Williams 28b1954654 call-list: remove unused modem property
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 07:57:50 -05:00
Dan Williams b9c49c7b4d base-call: remove usage of MMBaseModem
Split out the things we actually use from MMBaseModem into
separate properties that can be independently implemented
(or just left NULL) for unit tests.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 07:57:50 -05:00
Dan Williams 8392f30388 base-call: split AT-specific call code into MMCallAt
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-30 07:57:50 -05:00
Dan Williams 3ed7f37876 Merge request !1290 from 'port-scheduler'
port-serial: add command scheduler infrastructure and use it

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1290
2025-05-23 18:58:30 -05:00
Dan Williams a769bbed6d port-serial: add serial port command scheduler
Add an interface and implementation for a port scheduler that round-
robins between ports the scheduler is attached to, serializing command
execution among one or more MMPortSerial instances.

Theory of operation:

Sources (e.g. MMPort subclasses) register themselves with the scheduler.

Each source notifies the scheduler whenever its command queue depth changes,
for example when new commands are submitted, when commands are completed,
or when commands are canceled.

The scheduler will round-robin between all sources with pending commands,
sleeping when there are no pending commands from any source.

For each source with a pending command the scheduler will emit the
'send-command' signal with that source's ID. The given source should
send the next command in its queue to the modem.

When that command is finished (either successfully or with an error/timeout)
the source must call mm_port_scheduler_notify_command_done() to notify the
scheduler that it may advance to the next source with a pending command, if
any. If the 'send-command' signal and the notify_command_done() call are not
balanced the scheduler may stall.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-23 18:46:53 -05:00
Dan Williams b24615d801 log-object: don't construct log ID with NULL self_id
If the object has an owner ID already but doesn't yet have enough
information to build its log ID, don't cache a less-than-useful
log ID string for it.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-23 18:46:32 -05:00
Dan Williams 39f4cf77f2 Merge request !1361 from 'cbm-lang'
Parse CBM's language when available and export it on DBus

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1361
2025-05-23 14:22:50 -05:00
Dan Williams 9cc5582bf2 Merge request !1355 from 'mtk-unlock-required'
mtk-legacy: read IMSI if CPIN response is an error

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

Closes #980
2025-05-23 14:11:58 -05:00
Dan Williams 5c1fcbfe4a mtk-legacy: read IMSI if CPIN response is an error
Some older MTK-based phones (Tecno T528 NEW) reply to +CPIN with
an error but are (obviously) unlocked, otherwise they wouldn't
be able to boot up to the point of talking to a computer. Since
they are actually unlocked they will happily give out the IMSI
even if +CPIN errors.

To work around the +CPIN issue treat the device as unlocked if we
can successfully read the IMSI.

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

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-23 08:31:04 -05:00
Dan Williams 757df26b29 broadband-modem,modem-helpers: move +CPIN response parsing to modem helpers
Unit test it better, plus remove code duplication in various plugins.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-23 08:31:04 -05:00
Dan Williams c5a2cd3157 Merge request !1364 from 'cbs-policy'
pollkit,cell-broadcast: Use more specific error message

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1364
2025-05-22 19:12:07 -05:00
Dan Williams 1192f49868 Merge request !1363 from 'pr/20250521-mbim-qdu'
broadband-modem-mbim: add qdu firmware update check

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1363
2025-05-22 09:10:42 -05:00
Dan Williams 680aed6acf Merge request !1044 from 'submodule'
Allow to use libqmi and libmbim as meson subprojects

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1044
2025-05-22 08:28:51 -05:00
Dan Williams c6d1d020f7 Merge request !1360 from 'bind-to-vs-cbm-crash'
base-cbm: Install properties one by one

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1360
2025-05-22 08:16:58 -05:00
Dan Williams 7ae153880c Merge request !1356 from 'sierra-call-urc-fix'
serial-parsers: don't echo-remove strange call start/end URCs

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1356
2025-05-22 08:09:41 -05:00
Dan Williams c3c6fdc55e serial-parsers: don't echo-remove strange call start/end URCs
Some Sierra devices omit the leading <CR> from call start/end URCs
like NO CARRIER and CONNECT, which caused the echo-removal code to
remove from the response buffer because the leading <CR><LF> did
not exist. That can break call control and hangup handling on
those devices.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-22 08:05:58 -05:00
Dan Williams 24f9309d6e serial-parsers,port-serial-at: move echo removal into serial parser
Mainly because we need somewhere to stash the call end regex, and
it's silly to have a 3rd instance of that in MMPortSerialAt when
we already have one in the serial parsers that MMPortSerialAt
relies on pretty heavily.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-22 08:05:58 -05:00
Dan Williams 7f014add61 broadband-modem,modem-helpers: generalize call end regex creation
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-22 08:05:58 -05:00
Dan Williams 41ceaf6d5e Merge request !1359 from 'cpms-spaces'
modem-helpers: handle spaces in +CPMS query response

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

Closes #990
2025-05-22 08:05:28 -05:00
Dan Williams 5888949fa3 modem-helpers: handle spaces in +CPMS query response
Fixes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/990

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-20 09:56:49 -05:00
Dan Williams 847ce9ada5 Merge request !1358 from 'qmi-cbm-fixes'
broadband-modem-qmi: Cellbroadcast channel reading fixes

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1358
2025-05-20 09:18:30 -05:00
Dan Williams ba8633e48a Merge request !1354 from 'dp/le910q-ecm-upstream'
Add ECM support for Telit LE910Q1

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1354
2025-05-19 09:05:00 -05:00
Dan Williams ec218e7052 Merge request !1346 from 'disconnect-request'
bearer: add new "disconnect-request" logic

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1346
2025-05-16 09:52:04 -05:00
Dan Williams a4421095f8 Merge request !1353 from 'fix-creg-regex'
modem-helpers: support multi-digit "stat" values in CREG response

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

Closes #987
2025-05-14 15:43:04 -05:00
Dan Williams bee6bce2fa Merge request !1352 from 'base-sim-auth-fix'
base-sim: Setup auth provider and its cancellable

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1352
2025-05-11 16:21:30 -05:00
Dan Williams c99c300ad5 Merge request !1235 from 'intel-rpc-xmm7360'
intel: implement support for RPC-powered xmm7360

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1235
2025-05-09 21:34:26 -05:00
Dan Williams d165d61a95 Merge request !1266 from 'v6-cgcontrdp'
modem-helpers: add IPv6 support to +CGCONTRDP parsing

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1266
2025-05-08 20:45:37 -05:00
Dan Williams d4c0bbc839 modem-helpers: add IPv6 support to +CGCONTRDP parsing
Add some test responses from the Quectel EG915Q and some other Quectel devices.
Then try to parse those responses.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:37:09 -05:00
Dan Williams 4bb6026e37 Merge request !1341 from 'mbim-multipart-fix'
sms: always use SMS_PART_INVALID_INDEX unstored parts

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

Closes #979
2025-05-08 20:36:44 -05:00
Dan Williams 1d5cc0addb broadband-modem-qmi,broadband-modem-mbim: always use SMS_PART_INVALID_INDEX unstored parts
MMSmsList has logic to allow multiple unstored messages as long as
they use SMS_PART_INVALID_INDEX. These messages aren't stored so
they don't have an index.

But the MBIM and QMI modems used index 0 for unstored messages,
meaning there could only ever be one and also that multipart
messages would fail to be combined.

Let's fix that by just using SMS_PART_INVALID_INDEX for every
scenario where an unstored message comes in.

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

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:25:22 -05:00
Dan Williams 51ff44f1f5 sms-list: remove usage of MMBaseModem
Not used for anything anymore so we can remove the property.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:38 -05:00
Dan Williams 03027b5ec2 base-sms: remove MODEM property
No longer depend on MMBaseModem since everything that specifically
uses it is now removed.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:38 -05:00
Dan Williams 97c189910b base-sms,sms-list: use signals to set multipart reference
Instead of going through the messaging interface, which just asks
the MMSmsList anyway, just go straight to the list.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:38 -05:00
Dan Williams c6af442053 base-sms: reduce possibility of leaking multipart reference
Move error paths after getting a multipart reference to before getting
one, to reduce the possiblity that we get a reference from the MMSmsList
that ultimately doesn't end up getting used.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:38 -05:00
Dan Williams 1781ffaad4 base-sms: pass supported storages in at creation time
They won't change, and this lets us get rid of one more usage of
MMIfaceModemMessaging.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:37 -05:00
Dan Williams 9c8ec57c24 base-sms: pass SMS default storage at creation time and update as needed
Instead of getting it from the MMIfaceModemMessaging when the
SMS is stored. This flattens dependencies between MMBaseSms and
MMIfaceModemMessaging.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:37 -05:00
Dan Williams b81f23e24a base-sms,sms-list,iface-messaging: move MMBaseSms creation to MMBroadbandModem class
This commit moves creation of the MMBaseSms objects out of MMSmsList and up
into MMIfaceModemMessaging (which is already a MMBroadbandModem) and
the MMBroadbandModem subclasses themselves.

This flattens the creation of MMBaseSms objects by passing them down
from the object that creates the SMS parts, rather than having a
convoluted callback scheme relying on MMSmsList and MMBaseSms having
direct knowledge of their owning modem.

The goal is to eventually remove usage of MMBaseModem from MMBaseSms
and MMSmsList so that we can test them more easily.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:37 -05:00
Dan Williams 9830e3955a base-sms,sms-at: split AT-specific SMS code into MMSmsAt
Simplify MMBaseSms (making it easier to use from testcases) by
splitting the AT-specific code into MMSmsAt rather than keeping
it in the base class.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:37 -05:00
Dan Williams 6d0e4daf87 base-bearer: remove unused include
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:37 -05:00
Dan Williams 1283ee8c2a base-sms,iface-modem-messaging: move lock/unlock logic into the interface
Allows us to test things that rely on MMBaseSms more easily..

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:37 -05:00
Dan Williams 683a33b303 base-sms: determine 3GPP vs. CDMA at creation time
It won't ever change over the lifetime of the BaseSMS.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:37 -05:00
Dan Williams 08a65a0bed sms-mbim: remove unused code
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:24:37 -05:00
Dan Williams efcc960b13 Merge request !1344 from 'cbm-remove-modem'
Begin removing usage of MMBaseModem from leaf classes

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1344
2025-05-08 20:10:48 -05:00
Dan Williams 1fa21fcc48 base-cbm,cbm-list,iface-cbm: remove usage of MMBaseModem
CBM isn't as complicated as SMS, and the CBM class itself doesn't
need to be overridden by QMI/MBIM/etc. Now that the log parent
and connection binding no longer require MMBaseModem we can flatten
the CBM object creation and remove usage of MMBaseModem.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:08:06 -05:00
Dan Williams ec5104c9a8 Move log parent and connection property binding to helper
Continues removing usage of MMBaseModem in a bunch of files
by splitting out bits of its usage to separate interfaces.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:08:06 -05:00
Dan Williams ef5cee3ab5 auth-provider: move auth provider logic into each class
Rather than make all of them rely on MMBaseModem for it. This
lets us disentangle dependencies for easier unit testing.

For interfaces, rather than casting directly to MMBaseModem
use intermediate interfaces (MMIfaceAuth and MMIfaceOpLock)
that tests can fake out.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:08:06 -05:00
Dan Williams 7262b46a82 base-modem,auth-provider: move testcase auth bypass to auth provider
The bypass when in testcase mode has nothing to do with the base modem
class; so make it generic.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:08:06 -05:00
Dan Williams 02942a04f9 Merge request !1314 from 'quectel-power-down'
quectel: wait for POWERED DOWN URC and decrease other power operation timeouts

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1314
2025-05-08 20:06:24 -05:00
Dan Williams 0bfb11c62c quectel: decrease low-power/power-on/reset wait times to 15 seconds
AT docs for many (most?) device state a max timeout of 15 seconds.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 19:54:54 -05:00
Dan Williams e05af7442c quectel: ensure power down operation waits for POWERED DOWN URC
AT docs for many (most?) Quectel devices state that QPOWD=1 receives
the OK response very quickly but the caller must wait for the
POWERED DOWN URC to avoid data loss. Do that.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 19:54:54 -05:00
Dan Williams bf416a7462 Merge request !1310 from 'disabled-profiles'
bearer: don't choose or activate disabled profiles

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1310
2025-05-08 19:54:43 -05:00