aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-09api: remove Modem.Sar interfaceAleksander Morgado
There is no real implementation for it yet, so let's recover these changes once 1.18 has been released.
2021-08-09build: require libqmi 1.30.0Aleksander Morgado
2021-08-09build: require libmbim 1.26.0Aleksander Morgado
2021-08-09port-qmi: limit MTU to max RMNET packet sizeAleksander Morgado
The maximum MTU that the master interface can support should be less or equal than RMNET_MAX_PACKET_SIZE, as defined in the `rmnet_private.h` file in the linux sources (not a public header). Only applicable to RMNET link management (i.e. not to qmi_wwan add_mux/del_mux). Fixes https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/issues/71
2021-08-09port-qmi: only consider port setup not needed if data modes matchAleksander Morgado
When not requesting multiplexing support, only assume we don't need any additional setup if multiplexing is disabled AND if the data modes match between kernel and device. This fixes the connection setup in MSM8916 (rpmsg+bam/dmux).
2021-08-09core: new '--test-multiplex-requested' optionAleksander Morgado
The new option will change the default setting in MBIM and QMI bearers to "request" when no explicit "multiplex" configuration is given by the user. This option will help test the multiplexing support in the modems before it's made a default in a future release.
2021-08-09bearer-qmi: don't enable multiplexing by default unless in IPAAleksander Morgado
The next 1.18 release will have multiplexing support, but not enabled by default, to avoid breaking setups that don't expect the new virtual net interfaces for the multiplexed sessions. The exception is Qualcomm SoCs using the IPA driver, where multiplexing is fully required.
2021-08-09bearer-mbim: don't enable multiplexing by defaultAleksander Morgado
The next 1.18 release will have multiplexing support, but not enabled by default, to avoid breaking setups that don't expect the new virtual net interfaces for the multiplexed sessions.
2021-08-09broadband-bearer: default to 'none' if no multiplexing config providedAleksander Morgado
2021-08-09base-bearer: remove default multiplex support symbolAleksander Morgado
Using "requested" as a common default for every possible implementation works, because it can handle setups without multiplexing capabilities (e.g. plain AT+PPP modems) and also setups without non-multiplexing capabilities (e.g. IPA based SoCs). But if we don't want "requested" as default, then there will be failing cases; e.g. we cannot use "none" as default for all as it would break IPA, and we cannot use "required" as default for all as it would break AT+PPP setups. So, remove the common default, it's not flexible enough.
2021-08-09broadband-modem-qmi: fix max bearers computation in IPA based setupsAleksander Morgado
In IPA based setups, there are only multiplexed bearers supported, there is no way to not enable multiplexing. We change the logic that computes the maximum number of multiplexed and non-multiplexed bearers, so that we check which are the current kernel data modes before computing them.
2021-08-09bearer-list: if non-multiplexing not supported, 0 max non-multiplexed bearersAleksander Morgado
2021-08-09bearer-list: if multiplexing not supported, 0 max multiplexed bearersAleksander Morgado
Fixes warnings on AT+PPP based devices: ModemManager[602870]: <debug> [1626948725.168355] [modem0] allowed up to 1 active bearers (ModemManager:602870): GLib-GObject-WARNING **: 12:12:05.185: value "0" of type 'guint' is invalid or out of range for property 'max-active-multiplexed-bearers' of type 'guint'
2021-08-09foxconn: add T99W175 carrier mapping tableFreedom Liu
2021-08-09foxconn: update T77W968 carrier mapping tableFreedom Liu
2021-08-09foxconn: Rename carrier-mapping to t77w968-carrier-mappingFreedom Liu
2021-08-06ci: switch to build libqrtr-glib from git using mesonAleksander Morgado
2021-08-06ci: switch to build libqmi from git using mesonAleksander Morgado
2021-08-04broadband-modem-mbim: minor rework in SIM event related commentsAleksander Morgado
2021-08-04broadband-modem-mbim: also report as available not fully ready SIMsAleksander Morgado
If a SIM card is not fully ready or in a failed state in the non-active slot, we should still report them as available.
2021-08-04broadband-modem-mbim: deal with the slot info status notification event for DSSAZhangMingjie
2021-08-04kernel-device-generic: Fix ptr_array_add_sysfs_attribute_link_basenameLoic Poulain
A pointer can not be used anymore after its ownership has been transfered using the g_steal_pointer function (pointer is nullified). In this function, g_steal_pointer() is used when inserting 'value' inside the array but can also be subsequently used when dumping 'value' to 'out_value' via g_strdup(). Fix that with simple reordering. Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
2021-08-02modem-qmi: implement multiparty functionalitiesJoel Selvaraj
The following functionalities are implemented: 1. Hold all and accept 2. Hangup all and accept 3. Hangup all 4. Join multiparty 5. Leave multiparty 6. Call transfer
2021-08-02modem-qmi: implement call waiting setup and queryJoel Selvaraj
2021-08-02modem-qmi: implement setup in call unsolicited eventsJoel Selvaraj
Handle supplementary service notification indication. Useful to know when existing call is on hold, unheld and waiting.
2021-08-02call-list: allow getting call object by indexJoel Selvaraj
2021-08-02build: bump libqmi requirement to support voice supplementary servicesJoel Selvaraj
2021-08-02test,modem-helpers: add test case of AT+CPOL? response parsingTeijo Kinnunen
2021-08-02modem-helpers: allow unquoted operator code in AT+CPOL? responseTeijo Kinnunen
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/409
2021-08-01telit: disable +CPOL based features in the LN930Aleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/414
2021-07-31fibocom: fix QMI device allowanceAleksander Morgado
E.g. for a FM150: [1627656003.230873] [cdc-wdm0] port contents loaded: [1627656003.231069] [cdc-wdm0] bus: usb [1627656003.231179] [cdc-wdm0] interface: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.4/1-11.4.4:1.4 [1627656003.231272] [cdc-wdm0] device: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.4 [1627656003.231364] [cdc-wdm0] driver: qmi_wwan [1627656003.231450] [cdc-wdm0] vendor: 2cb7 [1627656003.231536] [cdc-wdm0] product: 0104 [1627656003.231626] [cdc-wdm0] revision: 0414 [1627656003.231722] [base-manager] adding port cdc-wdm0 at sysfs path: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.4/1-11.4.4:1.4/usbmisc/cdc-wdm0 ... [1627656004.333874] [plugin/fibocom] port cdc-wdm0 filtered by implicit QMI driver
2021-07-31huawei: disable CPOL based features in the R215Aleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/411
2021-07-31huawei: ignore ^LWURC URCsAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/412
2021-07-30kernel-device: generic: Support ATTR conditionLoic Poulain
Only the plural ATTRS form was checked but we also need to support the single ATTR for matching device's attribute only. Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
2021-07-30build: Rename template filesIñigo Martínez
The template files in the `build-aux` directory used in enums sources and headers generation use the `{$name}-template.[ch]` pattern. However, the examples in the official guide[0] and usually GNOME and Freedesktop packages use the `{$name}.[ch].template` pattern. Due to this, the name of the template files and build commands have been changed. [0] https://developer.gnome.org/gobject/stable/glib-mkenums.html
2021-07-29cinterion: increase ^SCFG? timeout to 120sAleksander Morgado
The timeout in this command is extremely large, because there are some modules like the EGS5 that build the response based on the current network registration, and that implies the module needs to be registered. If for any reason there is no serving network where to register, the response comes after a very long time, up to 100s. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/408
2021-07-28ci: switch to build libmbim from git using mesonAleksander Morgado
2021-07-27port-mbim: increase timeout of first command after port openAleksander Morgado
The port open operation may be happening very early after the device has booted, so let's give the module some more time to reply the very first MBIM query we do. The original 10s seems to be a bit tight in some cases. See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/405#note_1006746
2021-07-27port-qmi: open without data format explicitly if requested by userAleksander Morgado
Regardless of whether WDA is supported or not.
2021-07-27port-qmi: early check if WDA is supportedAleksander Morgado
We should check if WDA is supported before running any other logic that may change the state of the kernel or the modem. E.g. if we don't do this as the first step, the loading of the supported kernel data modes may end up changing the expected kernel data mode to raw-ip.
2021-07-27port-qmi: cleanly close device if an open operation failedAleksander Morgado
ModemManager[703345]: <debug> [1626962477.971869] [modem0] couldn't open QMI port with data format update: Unexpected kernel data mode: cannot setup using CTL ModemManager[703345]: <debug> [1626962477.972197] [cdc-wdm0/qmi] Opening QMI device... ModemManager[703345]: <debug> [1626962477.972310] [cdc-wdm0/qmi] Checking if QMI device already opening... ModemManager[703345]: <warn> [1626962477.975182] [modem0] couldn't start initialization: QMI device open/close operation in progress
2021-07-27port-qmi: support devices that only run in 802.3 modeAleksander Morgado
E.g. the ZTE MF190 has a very old QMI firmware that is not able to run CTL Set Data Format (raw-ip). ModemManager[666366]: [/dev/cdc-wdm0] QMI Device supports 4 services: ModemManager[666366]: [/dev/cdc-wdm0] ctl (1.2) ModemManager[666366]: [/dev/cdc-wdm0] wds (1.3) ModemManager[666366]: [/dev/cdc-wdm0] dms (1.2) ModemManager[666366]: [/dev/cdc-wdm0] nas (1.0) ModemManager[666366]: [/dev/cdc-wdm0] Setting network port data format... ModemManager[666366]: [/dev/cdc-wdm0] Sent message... <<<<<< RAW: <<<<<< length = 21 <<<<<< data = 01:14:00:00:00:00:00:03:26:00:09:00:10:02:00:02:00:01:01:00:00 ModemManager[666366]: [/dev/cdc-wdm0] Sent generic request (translated)... <<<<<< QMUX: <<<<<< length = 20 <<<<<< flags = 0x00 <<<<<< service = "ctl" <<<<<< client = 0 <<<<<< QMI: <<<<<< flags = "none" <<<<<< transaction = 3 <<<<<< tlv_length = 9 <<<<<< message = "Set Data Format" (0x0026) <<<<<< TLV: <<<<<< type = "Protocol" (0x10) <<<<<< length = 2 <<<<<< value = 02:00 <<<<<< translated = raw-ip <<<<<< TLV: <<<<<< type = "Format" (0x01) <<<<<< length = 1 <<<<<< value = 00 <<<<<< translated = absent ModemManager[666366]: [/dev/cdc-wdm0] Received message... <<<<<< RAW: <<<<<< length = 19 <<<<<< data = 01:12:00:80:00:00:01:03:26:00:07:00:02:04:00:01:00:2D:00 ModemManager[666366]: [/dev/cdc-wdm0] Received generic response (translated)... <<<<<< QMUX: <<<<<< length = 18 <<<<<< flags = 0x80 <<<<<< service = "ctl" <<<<<< client = 0 <<<<<< QMI: <<<<<< flags = "response" <<<<<< transaction = 3 <<<<<< tlv_length = 7 <<<<<< message = "Set Data Format" (0x0026) <<<<<< TLV: <<<<<< type = "Result" (0x02) <<<<<< length = 4 <<<<<< value = 01:00:2D:00 <<<<<< translated = FAILURE: InvalidDataFormat ModemManager[666366]: <debug> [1626961628.001354] [cdc-wdm0/qmi] QMI port open operation failed: QMI protocol error (45): 'InvalidDataFormat' ModemManager[666366]: <warn> [1626961628.002563] [modem0] couldn't start initialization: QMI protocol error (45): 'InvalidDataFormat' ModemManager[666366]: <warn> [1626961628.004181] [modem0] couldn't initialize: 'Modem is unusable, cannot fully initialize'
2021-07-27broadband-modem-qmi: remove trailing whitespacesAleksander Morgado
2021-07-27ci: remove autoconf-archive from templateAleksander Morgado
2021-07-27huawei: plug memleak when processing GETPORTMODE hintsAleksander Morgado
==99766== 96 (24 direct, 72 indirect) bytes in 1 blocks are definitely lost in loss record 3,791 of 4,243 ==99766== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==99766== by 0x50DCAC9: g_malloc (gmem.c:106) ==99766== by 0x50F46D6: g_slice_alloc (gslice.c:1069) ==99766== by 0x50CE9F2: g_list_insert_sorted_real (glist.c:1109) ==99766== by 0x753DE92: ??? ==99766== by 0x753E6D4: ??? ==99766== by 0x753E897: ??? ==99766== by 0x1F059D: mm_plugin_create_modem (mm-plugin.c:922) ==99766== by 0x166693: mm_device_create_modem (mm-device.c:481) ==99766== by 0x161547: device_support_check_ready (mm-base-manager.c:219) ==99766== by 0x4F03533: g_task_return_now (gtask.c:1219) ==99766== by 0x4F07078: UnknownInlinedFun (gtask.c:1289) ==99766== by 0x4F07078: g_task_return (gtask.c:1245)
2021-07-27option: disable preferred networks management in custom SIM objectAleksander Morgado
It's been observed that running CPOL? would completely break the AT port of the modules like the GIO225. Fully disable this feature in the whole option and option-hso plugins, by creating a new custom SIM object with the features disabled completely, and setup as a new shared interface object. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/404
2021-07-27iridium: disable preferred networks management in SIM objectAleksander Morgado
It's not applicable to Iridium modems, which only work with one single operator.
2021-07-27libqcdm: plug leak in qcdm_cdm_log_config_new()Aleksander Morgado
==748616== 37 bytes in 1 blocks are definitely lost in loss record 2,850 of 4,938 ==748616== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==748616== by 0x249CCF: qcdm_cmd_log_config_new (commands.c:1742) ==748616== by 0x24A321: qcdm_cmd_log_config_set_mask_new (commands.c:1901) ==748616== by 0x1DAE12: modem_cdma_setup_cleanup_unsolicited_events (mm-broadband-modem.c:8643) ==748616== by 0x1DAF21: modem_cdma_setup_unsolicited_events (mm-broadband-modem.c:8671) ==748616== by 0x1AE49F: interface_enabling_step (mm-iface-modem-cdma.c:1627) ==748616== by 0x1AE680: mm_iface_modem_cdma_enable (mm-iface-modem-cdma.c:1693) ==748616== by 0x1E2DF6: enabling_step (mm-broadband-modem.c:11756) ==748616== by 0x1E204E: iface_modem_3gpp_ussd_enable_ready (mm-broadband-modem.c:11606) ==748616== by 0x4F03533: g_task_return_now (gtask.c:1219) ==748616== by 0x4F07078: UnknownInlinedFun (gtask.c:1289) ==748616== by 0x4F07078: g_task_return (gtask.c:1245) ==748616== by 0x1AA323: interface_enabling_step (mm-iface-modem-3gpp-ussd.c:702)
2021-07-27build: import used AX_ macros from autoconf-archiveAleksander Morgado
This allows us to build from git without build-depending on autoconf-archive, which is not always available as a package.
2021-07-27build: update introspection.m4Aleksander Morgado
In sync with gobject-introspection 1.68.0