Commit Graph
26 Commits
Author SHA1 Message Date
Aleksander Morgado efcfce02a9 build-aux,mkenums: import custom mkenums tool from libqmi/libmbim
We're going to use certain new features included in the custom tool.
2023-04-27 12:23:04 +00:00
Marcus Folkesson 5406abc187 sierra: add port hints for HL7812
Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
2023-04-13 08:23:09 +00:00
Lubomir Rintel c40876de95 port-serial-at: make mm_port_serial_at_command_finish() transfer ownership
This will make it slightly easier to port mm_port_serial_at_command() to
use GTask, since we won't have to keep a pointer to the result in GTask
after _finish() has been called.

In most cases the caller needs the value anyway, so this doesn't add too
much hasle.
2023-04-11 13:49:03 +00:00
Aleksander Morgado e3c3604838 cinterion: fix missing object in mm_obj_dbg() calls 2023-04-10 15:06:28 +00:00
Aleksander Morgado a53990e074 cinterion: fix warning with -Wmissing-prototypes
../src/plugins/cinterion/mm-plugin-cinterion.c:65:1: warning: no previous prototype for ‘is_port_already_tagged’ [-Wmissing-prototypes]
     65 | is_port_already_tagged (MMPortProbe *probe)
        | ^~~~~~~~~~~~~~~~~~~~~~
2023-04-10 15:05:24 +00:00
Konrad Zapałowicz 4f4bd48db9 cinterion: use port type hints on modem probe
The Cinterion plugin is using the output of the SQPORT? to guess which
ports can be used for AT commands and data connection.

Yet at the same time the udev adds port type hints to the Cinterion
modem upon its discovery.

This commit changes the initialization in a way that from now on it
skips sending SQPORT? when the port type hints are already assigned. By
doing this we make sure that the udev port type hints are being used
when they are available. In case they are not the initialization relies
on the outout of SQPORT? as it did do far.

See: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/782
2023-04-10 09:52:26 +00:00
Aleksander Morgado ea441d0f89 sierra: add EM7455 port type hints 2023-03-27 13:23:43 +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
Aleksander Morgado e81ae2b2b1 broadmobi: no real requirement for QCDM
The supported broadmobi 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
Aleksander Morgado 11219ed0d8 sierra: no real requirement for QCDM
The QCDM ports are not strictly required in the Sierra plugin, as this
plugin deals exclusively with QMI and MBIM capable devices.
2023-03-27 12:54:46 +00:00
Kirill Buksha c463807494 cinterion: don't assume GError structure always initialized
GError structure may not be initialized after execution of
mm_3gpp_parse_cgdcont_read_response() and accessing it's
fields will cause a segmentation fault.
2023-03-15 11:02:36 +00:00
Daniele Palmas 592f8b6364 telit: ignore composition 0x1075
When Telit FN990 is integrated through PCIe, but also USB lines are
available, ModemManager will consider the port on the USB composition
as a different modem:

oem@sw-test:~$ mmcli -L
    /org/freedesktop/ModemManager1/Modem/1 [telit] FN990A40
    /org/freedesktop/ModemManager1/Modem/0 [Telit] FN990A40

oem@sw-test:~$ mmcli -m 0
<snip>
           |         equipment id: 359172390022295
  --------------------------------
  System   |               device: /sys/devices/pci0000:00/0000:00:14.0/usb2/2-5
           |              drivers: option
           |               plugin: telit
           |         primary port: ttyUSB0
           |                ports: ttyUSB0 (at)

oem@sw-test:~$ mmcli -m 1
<snip>
            |           equipment id: 359172390022295
  -----------------------------------
  System    |                 device: /sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0
            |                drivers: mhi-pci-generic
            |                 plugin: telit
            |           primary port: wwan0mbim0
            |                  ports: wwan0 (net), wwan0at0 (at), wwan0at1 (at),
            |                         wwan0mbim0 (mbim), wwan0nmea0 (ignored), wwan0qcdm0 (ignored)

Ignore composition 0x1075, since it should not be used by ModemManager
and can only show when PCIe is used.
2023-03-07 11:06:51 +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 fbd79a278b xmm: fix crash parsing XACT? response
Ensure we don't assert when processing an unexpected response.

We were not correctly handling the case where g_match_info_matches()
was not succeeding.

  0x00007d8be96cc462 (libc.so.6 + 0x00028462)     abort
  0x00007d8be995ff01 (libglib-2.0.so.0 - gtestutils.c: 3253)      g_assertion_message
  0x00007d8be995ff64 (libglib-2.0.so.0 - gtestutils.c: 3279)      g_assertion_message_expr
  0x00007d8be858086a (libmm-shared-xmm.so - mm-modem-helpers-xmm.c: 467)  mm_xmm_parse_xact_query_response
  0x00007d8be857d4e0 (libmm-shared-xmm.so - mm-shared-xmm.c: 310) xact_query_bands_ready
  0x00007d8be9a79463 (libgio-2.0.so.0 - gsimpleasyncresult.c: 802)        g_simple_async_result_complete
  0x00005c8d2a11e9b9 (ModemManager - mm-base-modem-at.c: 538)     at_command_ready
  0x00007d8be9a79463 (libgio-2.0.so.0 - gsimpleasyncresult.c: 802)        g_simple_async_result_complete
  0x00005c8d2a19376b (ModemManager - mm-port-serial-at.c) serial_command_ready
  0x00007d8be9a79463 (libgio-2.0.so.0 - gsimpleasyncresult.c: 802)        g_simple_async_result_complete
  0x00005c8d2a18f93f (ModemManager - mm-port-serial.c: 139)       command_context_complete_and_free
  0x00005c8d2a192985 (ModemManager - mm-port-serial.c: 753)       port_serial_got_response
  0x00005c8d2a192dff (ModemManager - mm-port-serial.c: 924)       common_input_available
  0x00007d8be993e3fc (libglib-2.0.so.0 - gmain.c: 3417)   g_main_context_dispatch
  0x00007d8be993e704 (libglib-2.0.so.0 - gmain.c: 4211)   g_main_context_iterate
  0x00007d8be993e978 (libglib-2.0.so.0 - gmain.c: 4411)   g_main_loop_run
  0x00005c8d2a105e66 (ModemManager - main.c: 217) main
  0x00007d8be96cc6c5 (libc.so.6 + 0x000286c5)     __libc_init_first
  0x00007d8be96cc781 (libc.so.6 + 0x00028781)     __libc_start_main
  0x00005c8d2a105b80 (ModemManager + 0x00061b80)  _start
2023-02-21 14:59:01 +00:00
Daniele Palmas 6748fb7c2c telit: fallback to AT commands in case of MBIM loading revision failure
Some firmware versions return an empty string for the revision when
using the device caps MBIM request, so use AT commands as a fallback
in case this happens.
2023-01-30 16:00:45 +01:00
Daniele Palmas a9e841e931 telit: increase initial delay for AT ports
FN990 requires more time for the AT ports to become responsive,
so increase the initial delay up to 40 seconds.
2023-01-30 16:00:45 +01:00
Daniele Palmas 6632136990 telit: add port type hints for FN990 0x1070, 0x1071 compositions 2023-01-30 16:00:45 +01:00
Daniele Palmas 2c235260e4 telit: add shared support for 5G modes 2023-01-30 16:00:45 +01:00
Aleksander Morgado e3667ecb56 build: fix dependency on daemon enums required by plugins
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/686
2023-01-10 14:13:34 +00:00
Aleksander Morgado 1c4da332ee build: new option to build plugins within the daemon binary
Instead of creating libmm-plugin* and libmm-shared* libraries that are
dlopen()-ed on runtime, allow incorporating all plugins into the
daemon binary itself.

This makes the startup of the daemon much faster and also avoids
issues with builds that require linker namespace isolation.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/674
2023-01-03 13:56:25 +00:00
Aleksander Morgado 1dd70be4c8 plugins: setup new helper macros to define shared utils 2023-01-03 13:56:25 +00: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 876e8537c4 plugins: don't include daemon enums sources 2023-01-03 13:56:25 +00:00
Aleksander Morgado f562a51afb build: fix missing module name in shared option utils 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