Commit Graph
40 Commits
Author SHA1 Message Date
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
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
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 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
Mank Wang d7dab1773d Netprisma: Add new plugin 2024-08-02 14:34:16 +00:00
mank.wang 8cbd12a603 quectel: support at over mbim in quectel modems 2024-07-31 13:58:16 +00:00
Lubomir Rintel 5cdeea43da quectel/shared: do not leak name string 2024-05-31 10:46:30 +00:00
Aleksander Morgado e4e6857aed shared-quectel: use G_DECLARE|DEFINE_INTERFACE() macros 2024-05-06 13:45:39 +00:00
Aleksander Morgado 074277ca1a iface-modem-time: use G_DECLARE|DEFINE_INTERFACE() macros 2024-05-06 13:45:38 +00:00
Aleksander Morgado aa94b21e0a iface-modem-location: use G_DECLARE|DEFINE_INTERFACE() macros 2024-05-06 13:45:38 +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 35c0a6905b iface-modem: use G_DECLARE|DEFINE_INTERFACE() macros 2024-05-06 13:27:04 +00:00
Aleksander Morgado 1e26e16168 broadband-modem-qmi-quectel: fix task completion when not enabling profile manager events
Fixes e3024ec620
2024-05-06 13:24:22 +00:00
Lukas Voegl e3024ec620 quectel: disable qmi unsolicited profile manager events
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2024-05-02 20:38:02 +00:00
Aleksander Morgado 1af88ed950 quectel: always report primary port in the firmware interface 2024-04-12 01:17:14 +00:00
Aleksander Morgado 3c4fa90c92 shared-quectel: don't assume that parent object supports location
The generic MBIM modem implementation does not have location
capabilities support, so the relevant function pointers in the
interface are NULL.

Fixes: 306566ad7e
2024-04-01 09:07:10 +00:00
Aleksander Morgado 306566ad7e quectel: implement shared quectel logic in MBIM modem 2024-03-13 03:57:57 +00:00
Aleksander Morgado 87fb47b9ab quectel: minor code reordering 2024-03-13 03:57:57 +00:00
Aleksander Morgado 91828ecc65 quectel: disable periodic signal checks in MBIM modems 2024-02-15 13:01:00 +00:00
Aleksander Morgado 74904b3cb1 quectel: coding style fixes 2023-10-18 21:29:06 +00:00
mank.wang 1b6e4c4349 quectel: avoid incorrect module version report after the upgrade
After LVFS upgrade, the module needs to be restarted. ModemManager
queries the module information, sometimes the module is not ready, and
the information queried by "mmcli -m any --firmware-status" is
incomplete,

It is now modified to re query once per second when obtaining
incomplete versions, up to a maximum of 16 times.

Signed-off-by: mank.wang <mank.wang@quectel.com>
2023-10-18 21:29:06 +00:00
Robert Marko 8182a10d5d quectel: add support for RM520N
RM520N in USB mode exposes the following:
ttyUSB0 (if #0): QCDM/DIAG port
ttyUSB1 (if #1): GPS data port
ttyUSB2 (if #2): AT primary port
ttyUSB3 (if #3): AT secondary port

So, lets mark them so ModemManager can properly manage them.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-10-12 13:16:36 +02:00
Rukun Mao b7433b4c14 iface-modem: new logic to detect SIM swap with explicit IMSI/ICCID query
This improves SIM hot swap check process, and it can help avoid unnecessary
modem reprobe during suspend-resume without SIM inserted.

The changes in this CL implemented the new logic ONLY for MBIM, and the
new logic has not been implemented for QMI and AT yet. Thus, we keep the
legacy `mm_iface_modem_check_for_sim_swap()' till the new logic for QMI
and AT has been implemented.
2023-10-11 14:01:33 +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
QuectelDuke 1fc061b6a5 quectel: Add RM520 with firehose support
Signed-off-by: QuectelDuke <duke.xin@quectel.com>
2023-09-15 09:49:50 +00:00
QuectelDuke bae7242af6 quectel: Add new EM160 product with firehose support
Signed-off-by: QuectelDuke <duke.xin@quectel.com>
2023-09-14 07:51:12 +00:00
QuectelDuke 0a87294725 quectel: add Sahara udev tag to EM061K-GL modems
Signed-off-by: QuectelDuke <duke.xin@quectel.com>
2023-09-08 08:35:48 +00:00
QuectelDuke 8fc9b77750 quectel: add support for EM060K-GL usb modules
Signed-off-by: QuectelDuke <duke.xin@quectel.com>
2023-08-14 12:03:02 +00:00
Andrey Skvortsov 4174575d5d quectel: fix debug output if QGPS isn't supported
FEATURE_NOT_SUPPORTED is equal 1 in the enum FeatureSupport, as a
result even if QGPS isn't supported by modem debug message printed
available support.
2023-07-13 08:15:10 +00:00
Aleksander Morgado 53f063b851 quectel: avoid assuming modem is MBIM capable in shared utils
(ModemManager:10426): GLib-GObject-WARNING **: 09:44:23.142: invalid cast from 'MMBroadbandModemQmiQuectel' to 'MMBroadbandModemMbim'
  **
  ERROR:../git/src/mm-broadband-modem-mbim.c:284:mm_broadband_modem_mbim_peek_port_mbim: assertion failed: (MM_IS_BROADBAND_MODEM_MBIM (self))
  Bail out! ERROR:../git/src/mm-broadband-modem-mbim.c:284:mm_broadband_modem_mbim_peek_port_mbim: assertion failed: (MM_IS_BROADBAND_MODEM_MBIM (self))

See https://lists.freedesktop.org/archives/modemmanager-devel/2023-July/009729.html
2023-07-07 05:50:12 +00:00
Aleksander Morgado e5493127cd quectel: no real requirement for QCDM
The supported Quectel modules are usually QMI based and therefore
very new, there is no real requirement to support QCDM based
management.
2023-03-27 12:54:46 +00:00
dchard 00f3054652 quectel: add support for EG12-EA type usb modules 2023-03-03 08:47:04 +00:00
QuectelDuke fb386765a5 quectel: add support for EC21-EUX usb modules
Signed-off-by: QuectelDuke <duke.xin@quectel.com>
2023-02-23 15:06:23 +08: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