aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-01-03mmcli,modem: new `--inhibit` action on the modem objectAleksander Morgado
Modem device inhibition is really a manager action for which we provide the full modem device 'uid'. This new operation allows to perform device inhibition using the modem object as reference, which is more handy than first looking at the device 'uid' and then running the manager action. $ sudo mmcli -m 0 --inhibit successfully inhibited device with uid '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12.2' type Ctrl+C to abort this program and remove the inhibition ^C cancelling the operation... successfully uninhibited device with uid '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12.2'
2019-01-03api,manager: new InhibitDevice() methodAleksander Morgado
This new method allows users of the ModemManager API to take full control of a given device. Unlike other operations in the API, the inhibition is maintained as long as the caller exists in the bus, or until the same caller uninhibits the device. https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/98
2019-01-03dell,dw5821e: also report QMI PDC based update availableAleksander Morgado
2019-01-03api,firmware: MMModemFirmwareUpdateMethod as flags, not enumAleksander Morgado
Devices may require/support more than one update method, so instead of reporting the method as a single enum value, use a set of flags instead.
2019-01-03api,firmware: expose firmware versionAleksander Morgado
2019-01-03api,firmware: expose device idsAleksander Morgado
2019-01-03kerneldevice: allow loading device revisionAleksander Morgado
2019-01-03mmcli,firmware: avoid empty output if firmware status unsupportedAleksander Morgado
2019-01-03iface-modem-firmware: List() and Select() are now optionalAleksander Morgado
Since the Firmware interface now contains more actions and properties apart from List() and Select(), these two actions are now optional. Not all modems implementing the Firmware interface must implement these two methods.
2019-01-03quectel: report fastboot-based firmware update method and settingsAleksander Morgado
We'll check for AT+QFASTBOOT support during runtime.
2019-01-03dell,dw5821e: report fastboot-based firmware update method and settingsAleksander Morgado
The DW5821e uses the AT^FASTBOOT command to reset the module in fastboot mode, ready to download new firmware. Note: we cannot use AT^FASTBOOT=? to query for support, as that command also triggers the reset :/
2019-01-03iface-modem-firmware: make the interface always availableAleksander Morgado
We no longer "check for support" of this interface, it will always be available for all modem objects. The only implementation that used this interface was the QMI one, and only for a very small subset of devices (those supporting the "QMI DMS List Stored Images" operation). The logic was changed so that the list of stored images wasn't preloaded during the support check; it will now instead be preloaded during the first call to List().
2019-01-03api,firmware: new UpdateSettings propertyAleksander Morgado
2019-01-03api,firmware: remove unimplemented Install() method detailsAleksander Morgado
2019-01-03api: deprecate 'number' in bearer propertiesAleksander Morgado
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/99
2019-01-03libmm-glib: add autoptr cleanup functions for all typesAleksander Morgado
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/100
2018-12-18Do not pass null string to %s printf formatted stringKhem Raj
Here the string is already decided to be NULL and passing a null pointer to %s will not work Fixes error: '%s' directive argument is null Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-12-17iface-modem-firmware: fix reporting empty firmware listAleksander Morgado
ModemManager[2804]: <warn> [1545055222.508649] No valid firmware images listed. Assuming firmware unsupported. ModemManager[2804]: <debug> [1545055222.508665] firmware list loading failed: unsupported ModemManager[2804]: <debug> [1545055222.508683] Couldn't load firmware image list: firmware list unknown ModemManager[2804]: <debug> [1545055222.508728] Couldn't load current firmware image: current firmware unknown (ModemManager:2804): GLib-CRITICAL **: 15:00:22.508: g_variant_builder_end: assertion '!GVSB(builder)->uniform_item_types || GVSB(builder)->prev_item_type != NULL || g_variant_type_is_definite (GVSB(builder)->type)' failed Thread 1 "ModemManager" received signal SIGTRAP, Trace/breakpoint trap. 0x00007ffff75b39b6 in ?? () from /usr/lib/libglib-2.0.so.0 (gdb) bt #0 0x00007ffff75b39b6 in () at /usr/lib/libglib-2.0.so.0 #1 0x00007ffff75b4363 in g_logv () at /usr/lib/libglib-2.0.so.0 #2 0x00007ffff75b4560 in g_log () at /usr/lib/libglib-2.0.so.0 #3 0x00007ffff758867d in g_variant_builder_end () at /usr/lib/libglib-2.0.so.0 #4 0x00005555555e4d12 in load_current_ready (self=0x55555579c330, res=0x5555557388e0, ctx=0x5555557d6d80) at mm-iface-modem-firmware.c:84 #5 0x00007ffff778f194 in () at /usr/lib/libgio-2.0.so.0 #6 0x00007ffff778f1c9 in () at /usr/lib/libgio-2.0.so.0 #7 0x00007ffff75c4271 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #8 0x00007ffff75c5f89 in () at /usr/lib/libglib-2.0.so.0 #9 0x00007ffff75c6f62 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0 #10 0x0000555555597aa0 in main (argc=2, argv=0x7fffffffe488) at main.c:181
2018-12-17docs,libmm-glib: update copyrightAleksander Morgado
2018-12-16ublox,tests: avoid using deprecated band symbolsAleksander Morgado
2018-12-16telit: avoid using deprecated band symbolsAleksander Morgado
2018-12-16libmm-glib,modem-3gpp: add guards around deprecated symbolsAleksander Morgado
2018-12-13altair-lte: use mm_autoptr instead of g_autoptrBen Chan
commit 397faef3c5ce ("mm-common-helpers: add mm_autoptr helpers for GRegex and GMatchInfo") introduces mm_autoptr(), which implements g_autoptr() that isn't available before glib 2.44. This patch fixes the code to consistently uses mm_autoptr().
2018-12-12base-call: Increase incoming call timeout to ten secondsBob Ham
The standard says a RING or CRING should be emitted whenever the network sends an incoming call notification, which is nation-specific: "Interpretation of indications from the network to determine what constitutes a "ring" is defined by national regulations. This result code should be repeated each time the network repeats the incoming call indication." -- ITU-T Rec. V.250, p. 42 On the giffgaff (O2) network in the UK, a SIMCom SIM7100E modem emits RING indicators every six seconds. The current timeout is only five seconds resulting in a stream of timed-out ModemManager call objects whenever there is an incoming call. To fix this, we increase the timeout to ten seconds.
2018-12-12base-call: Fix in-call URC regex to match handler logicBob Ham
The handler assumes the regex sub-expressions each have the same index so they need to be within the same set of parentheses rather than each individually parenthesised. Without this fix, call state changes are missed.
2018-12-10docs,libmm-glib: add missing methods for the Version propertyAleksander Morgado
2018-12-10dell: support XMM-based devicesLiuQiFeng
2018-12-09base-manager: load subsys/name once in device_added()Aleksander Morgado
2018-12-07policy: Call method name should be SendDtmf rather than SendToneBob Ham
The method on MMBaseCall is send_tone but the D-Bus method call is SendDtmf. Without this patch, calls return org.freedesktop.DBus.Error.AccessDenied.
2018-12-07iface-modem: always connect all method handlers, even in failed stateAleksander Morgado
So that the returned error is much more descriptive. E.g. instead of this: $ sudo mmcli -m 0 -e error: couldn't enable the modem: 'GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Method Enable is not implemented on interface org.freedesktop.ModemManager1.Modem' We'll get this: $ sudo mmcli -m 0 -e error: couldn't enable the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.WrongState: modem in failed state' https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/96
2018-12-07iface-modem: remove redundant logic to update failed stateAleksander Morgado
When the MMIfaceModem initialization returns with the SIM_NOT_INSERTED error, the base logic is already updating the modem failed reason to SIM_MISSING. There is no need to do that explicitly for the case where SIM hot swap is supported.
2018-12-07xmm,dell: add defaults for MBIM-derived objectsAleksander Morgado
For subclasses of MMBroadbandModemMbim, also apply the same property defaults. E.g. we want to avoid peridic signal quality polling and we also want to report that SIM hot swap is supported.
2018-12-07cli,modem: output should include all 3GPP EPS fields alwaysAleksander Morgado
Even if some fields wouldn't apply to some modem, we're always including all in the output so that clients can assume the fields are always given. Fix adding the 3GPP EPS related fields unconditionally.
2018-12-07broadband-modem-mbim: implement initial EPS bearer settings updatingAleksander Morgado
We use the "LTE attach config" extension defined by Microsoft to update the initial EPS bearer settings. https://docs.microsoft.com/en-us/windows-hardware/drivers/network/mb-lte-attach-operations
2018-12-07broadband-modem-mbim: implement initial EPS bearer settings loadingAleksander Morgado
We use the "LTE attach config" extension defined by Microsoft to query the initial EPS bearer settings. https://docs.microsoft.com/en-us/windows-hardware/drivers/network/mb-lte-attach-operations
2018-12-07broadband-modem-mbim: implement initial EPS bearer status supportAleksander Morgado
We use the "LTE attach status" extension defined by Microsoft to query and monitor the initial EPS bearer settings. https://docs.microsoft.com/en-us/windows-hardware/drivers/network/mb-lte-attach-operations
2018-12-07helpers-mbim: new method to convert IP type settings to/from MMAleksander Morgado
2018-12-07helpers-mbim: new method to convert auth settings to/from MMAleksander Morgado
2018-12-07api,modem-3gpp: new 'SetInitialEpsBearerSettings' methodAleksander Morgado
This method allows users to modify the settings used during the initial LTE attach procedure.
2018-12-07api,modem-3gpp: new 'InitialEpsBearerSettings' propertyAleksander Morgado
This property shows the settings stored in the device to be used during the initial LTE attach procedure.
2018-12-07api,modem-3gpp: new 'InitialEpsBearer' propertyAleksander Morgado
This property contains the DBus path of a Bearer object of type MM_BEARER_TYPE_DEFAULT_ATTACH, which is automatically exposed by the modem when registered in the LTE network. Unlike standard bearer objects created by the user, this bearer won't allow any connection/disconnection request, as its status is bound to the LTE registration exclusively. The bearer settings exposed by the object include the APN details that have been used during the initial packet network attach, which may be defined by modem settings (e.g. if previously configured in the firmware which APN to use for the given SIM card operator) or by the network itself (e.g. if none configured, or if a network override is required as when roaming). The bearer object will be created as soon as the LTE attach status details are known, and only while the modem is enabled. The implementation allows modems to update the LTE attach status details during runtime, so the bearer object with the settings may be recreated during runtime as well.
2018-12-07api,bearer: new 'BearerType' propertyAleksander Morgado
Until now we have only allowed to use and setup 'default bearers' (in 4G) or 'primary contexts' (in 2G/3G). We can define a couple of additional bearer types, though: * The 'dedicated bearers' (in 4G) or 'secondary contexts' (in 2G/3G), which are associated to a specific default/primary one, but which provide specific QoS settings configured via traffic flow templates. * The 'initial default EPS bearer', which is a special case of default bearer in LTE, which is automatically created and connected when the modem is registered in the LTE network. This commit introduces a new 'MMBearerType' enumeration that will be associated to each bearer through a 'BearerType' property in the org.freedesktop.ModemManager1.Bearer interface, showing what kind of bearer/context this is. By default, right now, all bearer objects created are 'default' bearers.
2018-12-07libmm-glib: fix mm_manager_scan() operationAleksander Morgado
The reporting of the operation result was reversed in the async method.
2018-12-07libmm-glib: fix mm_manager_set_logging() operationAleksander Morgado
The reporting of the operation result was reversed in the async method.
2018-12-04mm-common-helpers: add mm_autoptr helpers for GRegex and GMatchInfoDan Williams
Alias them to g_autoptr() on glib >= 2.44, otherwise re-implement.
2018-12-04build: version bump to flag existence of new API (runtime version reporting)Aleksander Morgado
2018-12-04api,manager: new 'Version' propertyAleksander Morgado
This string shows the runtime version of the ModemManager daemon. https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/94
2018-12-04libmm-glib,manager: fix manager interface proxy creationAleksander Morgado
We were re-using the GDBusObjectManagerClientFlags set in the MMManager object as GDBusProxyFlags for the Manager1 interface proxy object, and that was completely broken. Instead of setting "DO_NOT_AUTO_START" in the proxy, we were actually setting "DO_NOT_LOAD_PROPERTIES"...
2018-12-03helpers-qmi: fix UTRAN band 6 vs band 19 mappingAleksander Morgado
Looks like the original band 6 mapping was ok, and the mismatch was introduced when adding support for band 19. https://forum.sierrawireless.com/t/utran-19-band-configuration-in-sdk/14625 Fixes 518d62e731534cb4834a10e86f32ee31300de98b.
2018-11-30cli,output: include string.h for strlen()Ben Chan
This patch fixes the following compiler warning: mmcli-output.c:783:19: error: implicitly declaring library function 'strlen' with type 'unsigned long (const char *)' [-Werror,-Wimplicit-function-declaration] aux = strlen (section_infos[field_infos[item_l->field].section].name); ^