Commit Graph
194 Commits
Author SHA1 Message Date
Michał Sułek 9477469db4 Dan Williams changed g_usleep to g_timeout_add 2025-02-24 16:18:55 +00:00
Michał Sułek 31e486d672 Fixed the bug regarding SIM7600 modem family that made USB audio to not turn on.
Added the support for 16kHz sample rate for simtech modems and set it as default if available.
2025-02-24 16:18:55 +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
Kévin L'hôpital b1e58e0f6e src: plugins: quectel: add DTMF dbus notification support
The quectel modems that are not using QMI could receive DTMF events but
no dbus notification was sent to the user space. This patch adds the
DTMF notification support to the quectel plugin.

Signed-off-by: Kévin L'hôpital <kevin.lhopital@savoirfairelinux.com>
2025-02-19 09:47:28 +01:00
Daniele Palmas f6c0917a65 shared-telit: fix missing error initialization in load_revision_ready
Closes #953
2025-01-31 16:37:53 +01:00
Mank Wang 1e865d76a8 Netprisma:Add support for more USB devices 2024-12-09 09:28:57 +08:00
Lukas Voegl 68e725d45e broadband-modem-cinterion: implement load_current_modes
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2024-11-20 12:07:20 +00:00
Lukas Voegl 32435b430f broadband-modem-cinterion: never discard operator or mode
When setting an operator, AT+COPS overwrites the currently set allowed mode. Equally, the other way around, when setting the current mode, the configured operator is overwritten.

Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2024-11-20 12:07:20 +00:00
Bolan Wang 1d43bb0dac plugin,mtk: workaround for invalid rssi threshold on FM350.
FM350 modems report an invalid rssi threshold (always 0) in the signal-state response message.
It results in signal quality not being updated. We can use this patch to workaround this bug.
2024-11-20 10:38:23 +00:00
Daniele Palmas 3457df7df0 broadband-modem-telit: fix endless loop when enabling events in secondary port 2024-11-09 02:45:51 +00:00
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 cb6a56fa0c quectel: fix crash when parsing +CTZU=? response
The logic should consider that mm_parse_uint_list() may return NULL
without setting the output GError, in the case where an empty string
is given.

This should ideally be changed in the mm_parse_uint_list() itself, but
that approach is not trivial as the method is being used in multiple
different places.

This change exclusively tries to solve this crash.

  0x000057435d315eca (ModemManager - mm-shared-quectel.c: 1060)	ctzu_test_ready
  0x00007eea3d019e86 (libgio-2.0.so.0 - gtask.c: 1309)	g_task_return_now
  0x00007eea3d018e50 (libgio-2.0.so.0 - gtask.c: 1378)	g_task_return
  0x000057435d268eab (ModemManager - mm-base-modem-at.c: 544)	at_command_ready
  0x00007eea3d019e86 (libgio-2.0.so.0 - gtask.c: 1309)	g_task_return_now
  0x00007eea3d018e50 (libgio-2.0.so.0 - gtask.c: 1378)	g_task_return
  0x000057435d318a18 (ModemManager - mm-port-serial-at.c: 350)	serial_command_ready
  0x00007eea3d019e86 (libgio-2.0.so.0 - gtask.c: 1309)	g_task_return_now
  0x00007eea3d018e50 (libgio-2.0.so.0 - gtask.c: 1378)	g_task_return
  0x000057435d31c7bd (ModemManager - mm-port-serial.c: 734)	port_serial_got_response
  0x000057435d31cc3e (ModemManager - mm-port-serial.c: 911)	parse_response_buffer
  0x000057435d31cc3e (ModemManager - mm-port-serial.c: 1028)	common_input_available
  0x00007eea3d16591b (libglib-2.0.so.0 - gmain.c: 3460)	g_main_dispatch
  0x00007eea3d16591b (libglib-2.0.so.0 - gmain.c: 4200)	g_main_context_dispatch
  0x00007eea3d165c37 (libglib-2.0.so.0 - gmain.c: 4276)	g_main_context_iterate
  0x00007eea3d165eb5 (libglib-2.0.so.0 - gmain.c: 4479)	g_main_loop_run
  0x000057435d25f5bf (ModemManager - main.c: 236)	main
  0x00007eea3c980705 (libc.so.6 - libc_start_call_main.h: 58)	__libc_start_call_main
  0x00007eea3c9807c1 (libc.so.6 - libc-start.c: 360)	__libc_start_main_impl
  0x000057435d25ef10 (ModemManager + 0x000b3f10)	_start
  0x00007ffcc0b5d517
2024-10-29 08:39:05 +00:00
Stig M. Baugstø 1050e7a49e simtech: disable QMI PCO for SIM7100E preventing delayed modem crash
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/884

Signed-off-by: Stig M. Baugstø <1129097-stigma@users.noreply.gitlab.freedesktop.org>
2024-10-24 15:23:32 +02:00
Stig M. Baugstø 0c167a5124 cellient: new generic plugin for Cellient modems with optional QMI
Simple plugin handling Cellient (vid 0x2692) modems. Optional QMI
through the WITH_QMI compile flag. Disables QMI WDS PCO for the
Qualcomm-branded MPL200 by setting the ID_MM_QMI_PCO_DISABLED udev
tag, effectively preventing a modem crash.

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

Signed-off-by: Stig M. Baugstø <1129097-stigma@users.noreply.gitlab.freedesktop.org>
2024-10-24 15:21:57 +02:00
Aleksander Morgado 7ec338dafe cinterion: fix propagating NULL GError
(ModemManager:2925): GLib-CRITICAL **: 09:21:32.082: g_propagate_error: assertion 'src != NULL' failed
  (ModemManager:2925): GLib-GIO-CRITICAL **: 09:21:32.083: g_task_return_error: assertion 'error != NULL' failed`

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/916
2024-10-17 09:11:11 +00:00
Aleksander Morgado a63c300437 ublox: remove custom power operation synchronization logic
These are already synchronized at interface level, so there is already
a guarantee that they won't happen at the same time.
2024-09-30 11:07:20 +00:00
Aleksander Morgado 87dc3d36b4 quectel: remove custom power operation synchronization logic
The power up and down operations are already synchronized at
interface level, so there is already a guarantee that they won't
happen at the same time.

For the reset and power off operations, it is assumed that the modem
will either reset or power off, so there should be no need to sync
those operations with others, as the modem object will eventually go
away altogether in both cases.
2024-09-30 11:07:19 +00:00
Dan Williams 64646b98cd plugins/quectel: support modem power operations for AT-based devices
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2024-09-24 23:52:13 -05:00
Lukas Voegl 76b48f6194 cinterion: implement FDL update method
Adds AT^SFDL based Firmware Download as an update method for supported Cinterion modems.

Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2024-09-16 12:26:18 +02: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
Lukas Voegl d763b94677 quectel: implement DFOTA update method 2024-09-09 08:26:15 +00:00
mank.wang 0bab39a20b Quectel: Fix obtaining incorrect module names 2024-09-09 08:16:04 +00:00
Vanillan Wang ec779b9274 plugin,rolling: Update RW135 udev rules. 2024-09-09 07:35:51 +00:00
Aleksander Morgado 096455947a mtk: never reload TX/RX stats in FM350
The device always reports empty TX/RX values so there is no point in
periodically asking.

The logic to poll for stats is kept in place only if the device
requires the IP packet filters removal hack.
2024-08-29 10:07:43 +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
Daniele Palmas f62ff207bb telit: add port hints for FN912C04 0x3000 and 0x3001 compositions
Related kernel commits:

9a590ff28342 ("USB: serial: option: add Telit FN912 rmnet compositions")
77453e2b015b ("net: usb: qmi_wwan: add Telit FN912 compositions")
2024-08-05 03:25:09 +00:00
Aleksander Morgado e1d0bd0a64 netprisma: remove serial modems support 2024-08-02 14:38:03 +00:00
Mank Wang d7dab1773d Netprisma: Add new plugin 2024-08-02 14:34:16 +00:00
Bolan Wang 388e8ea538 plugin,mtk: Add load_unlock_retries
This patch add load_unlock_retries support by AT in mtk-based Fibocom
modem.
2024-07-31 20:13:28 +00:00
Thomas Vogt 7312c86130 intel: mark XMM7360 as unsupported 2024-07-31 17:36:14 +00:00
mank.wang 8cbd12a603 quectel: support at over mbim in quectel modems 2024-07-31 13:58:16 +00:00
lupuliang fc2886a3f9 rolling: Set RW101 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 15:01:57 +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
Lubomir Rintel 664d748a93 ublox/helpers: fix propagation of +URAT response parse error
The fallback error handling branch happens much too late, just leaking the
newly made GError instead of propagating.
2024-07-09 14:55:30 +00:00
Lubomir Rintel 0365f9f0d8 Revert "ublox/helpers: fix propagation of +URAT response parse error"
Not quite correct -- with the patch applied, the newly allocated GError
could potentially overwrite inner_error that was set previously.

This reverts commit d550a24ffdae4492e9f9e18fdf294adcda28fb65.
2024-07-09 14:55:30 +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
Lubomir Rintel 5cdeea43da quectel/shared: do not leak name string 2024-05-31 10:46:30 +00:00
Lubomir Rintel 39a90fc39a ublox/helpers: fix propagation of +URAT response parse error
We have been constructing a GError too late, just leaking it instead of
propagating.
2024-05-31 10:39:59 +00:00
Aleksander Morgado b3277a8563 port-mbim-fibocom: fix duplicated GError free 2024-05-30 08:46:54 +00:00
Lukas Voegl 03318e4791 broadband-modem-cinterion: increase COPS timeout
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2024-05-29 12:00:56 +00:00
Aleksander Morgado 5ea26af0e4 rolling: new plugin
This plugin provides support for modems from Rolling Wireless. The
current approach is to re-use the AT-based and MBIM-based specific
modem implementations from the Fibocom plugin.

Based on an original implementation from:
vanillan wang <vanillanwang@163.com>

See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1170
2024-05-29 10:14:39 +00:00
Aleksander Morgado 800c2bb02a fibocom: MBIM in shared utils is optional 2024-05-29 09:50:05 +00:00
Aleksander Morgado 6c92749d20 broadband-modem-cinterion: use generic initial EPS bearer management logic
The Cinterion specific implementation relies on the generic one but
adds the authentication information support using ^SGAUTH.

The loading of the initial EPS bearer status (i.e. the one agreed with
the network, not the settings) no longer has any Cinterion specific
behavior. The auth settings are NOT reported in the initial EPS bearer
status.
2024-05-29 09:08:18 +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