aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-04-18helpers: new parser for AT+IFC=?Aleksander Morgado
Instead of having the parser return separate list of supported flow controls for TE and TA, we simplify it by only returning those settings that apply to both TE and TA. This logic isn't perfect either, though, as some settings (e.g. '3' in TE in some modems, specifying a different XON/XOFF behavior) may not have a corresponding setting in the other end. The most common cases we care about (i.e. standard XON/XOFF, RTS/CTS) should be properly reported with this logic.
2017-04-17broadband-modem: open QCDM port for CDMA Serving System checking when neededDan Williams
2017-04-17broadband-modem: open QCDM port for Call Manager state checking when neededDan Williams
2017-04-17broadband-modem: open QCDM port for HDR state checking when neededDan Williams
2017-04-17broadband-modem: open QCDM port for access tech checking when neededDan Williams
2017-04-17broadband-modem: open QCDM port for signal checking when neededDan Williams
2017-04-17broadband-modem-novatel: $NWRSSI can report lower values than -115Dan Williams
My E725 reported 125 once; that's a valid dBm and MM shouldn't report an error when parsing it.
2017-04-17broadband-modem-novatel: clean up detailed registration state handlingDan Williams
Allocate the results instead of passing them back on the stack, which removes the "can't complete in idle" restriction. Also always open the QCDM port since we can't assume it will be open already at this point.
2017-04-17broadband-modem-novatel: clean up access technology reportingDan Williams
Instead of mixing the QCDM Novatel Snapshot code directly into the access technology checking code, split it out with its own async result. At the same time, make sure to open the QCDM port when it's needed, instead of assuming its already open. Since it won't always be.
2017-04-15iface-modem-signal: port mm_iface_modem_signal_initialize to use GTaskBen Chan
2017-04-15iface-modem-signal: port mm_iface_modem_signal_enable to use GTaskBen Chan
2017-04-15iface-modem-signal: port mm_modem_iface_signal_disable to use GTaskBen Chan
2017-04-15telit: unsupported CSIM lock should not skip loading unlock retriesCarlo Lobrano
Some modems do not support CSIM lock/unlock, but they do support querying SIM unlock retries through +CSIM command. If CSIM lock returns with "unsupported command" do not propagate the error and continue with the other CSIM queries instead, moreover the CSIM lock feature is signed as FEATURE_UNSUPPORTED in Telit modem private structure to prevent being sent again (e.g. calling CSIM unlock AT command).
2017-04-08base-call: remove unnecessary string duplicationsBen Chan
2017-04-08port-mbim: port mm_port_mbim_{open,close} to use GTaskBen Chan
2017-04-08port-qmi: port mm_port_qmi_allocate_client to use GTaskBen Chan
2017-04-07novatel: obtain MMPortProbe from GTask source objectBen Chan
The MMPortProbe object is already referenced by the GTask object for custom init. Instead of keeping another reference of MMPortProbe in the CustomInitContext, this patch changes the code to simply obtain it from the source object of GTask. See https://lists.freedesktop.org/archives/modemmanager-devel/2017-April/004420.html
2017-04-07polkit: fix build when polkit enabledAleksander Morgado
This fixes the build after commit 740ce1fb26dd83459075f2d069a9da25e449dd89. CC ModemManager-mm-auth-provider-polkit.o ../../src/mm-auth-provider-polkit.c: In function ‘authorize’: ../../src/mm-auth-provider-polkit.c:155:46: error: ‘AuthorizeContext’ has no member named ‘cancellable’ ctx->cancellable, ^ Makefile:1533: recipe for target 'ModemManager-mm-auth-provider-polkit.o' failed
2017-04-07sms-mbim: port sms_delete to use GTaskBen Chan
2017-04-07sms-mbim: port sms_send to use GTaskBen Chan
2017-04-07port-qmi: port mm_port_qmi_open to use GTaskBen Chan
2017-04-07call-list: port mm_call_list_delete_call to use GTaskBen Chan
2017-04-07sms-list: port mm_sms_list_delete_sms to use GTaskBen Chan
2017-04-07polkit: port authorize to use GTaskBen Chan
2017-04-07auth: port authorize to use GTaskBen Chan
2017-04-06telit: fix AT+SERVICE 3GPP2 access technology reportingDan Williams
Looks like a C&P error from the AT#PSNT codepath; all the docs I can find indicate that AT+SERVICE returns only an integer and no commas: <debug> (ttyUSB2): --> 'AT+SERVICE?<CR>' <debug> (ttyUSB2): <-- '<CR><LF>+SERVICE: 3<CR><LF><CR><LF>OK<CR><LF>' <debug> Couldn't refresh access technologies: 'Failed to parse +SERVICE response: '+SERVICE: 3''
2017-04-06iface-modem-simple: port register_in_3gpp_or_cdma_network to use GTaskBen Chan
2017-04-06bearer-list: port mm_bearer_list_disconnect_all_bearers to use GTaskBen Chan
2017-04-06novatel: port IMSI loading to use GTaskBen Chan
2017-04-06novatel: port custom init to use GTaskBen Chan
2017-04-06base-modem: port mm_base_modem_authorize to use GTaskBen Chan
2017-04-06novatel-lte: revert to original plugin library nameBen Chan
Commit f9c63bfa0 "build,plugins: update build rules" accidentally changed the Novatel LTE plugin from 'libmm-plugins-novatel-lte.so' to 'libmm-plugins-novatel_lte.so'. The name becomes inconsistent with other plugin names.
2017-04-02mbim-modem: disable location interfaceThomas Voß
MBIM does not support 3gpp location data right now. For that, we make sure that the location interface is not reported as supported by MBIM modems.
2017-04-02broadband-modem: normalize also operator codeAleksander Morgado
The operator code (MCCMNC) may also be given encoded in the current charset (e.g. UCS2). Based on a patch from Colin Helliwell <colin.helliwell@ln-systems.com>
2017-04-02modem-helpers: if operator not in UCS2, see if already valid UTF-8Aleksander Morgado
The method doing the operator name normalization takes as input the current configured modem charset. If this is UCS2, we will now just assume this is a hint: the string may or may not come in hex/UCS2. This logic makes the custom operator name loading in Huawei unneeded, if the modem is configured in UCS2, we still properly process operator names coming in plain ASCII.
2017-03-30base-manager: fix segfault when using already disposed MMDeviceAleksander Morgado
Since commit e9d0989ed069, the MMDevice may be removed from the tracking hash table when the support check operation fails to create a modem object. If this failure happens due to the port probe cancellations requested during the udev removal event for a given device port, we would end up using an already disposed object and triggering a segfault. This fix just makes sure a full valid reference to the MMDevice object is kept around until we're done using it. [mm-base-manager.c:216] device_removed(): (usbmisc/cdc-wdm1): released by device '/sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4' [mm-plugin-manager.c:1131] device_context_port_released(): [plugin manager] task 5: port released: cdc-wdm1 [mm-base-manager.c:216] device_removed(): (tty/ttyACM0): released by device '/sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4' [mm-plugin-manager.c:1131] device_context_port_released(): [plugin manager] task 5: port released: ttyACM0 [mm-base-manager.c:221] device_removed(): Removing empty device '/sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4' [mm-plugin-manager.c:1219] device_context_cancel(): [plugin manager) task 5: cancellation requested [mm-plugin-manager.c:979] device_context_continue(): [plugin manager] task 5: no more ports to probe [mm-plugin-manager.c:813] device_context_complete(): [plugin manager] task 5: finished in '0.090510' seconds [mm-base-manager.c:172] device_support_check_ready(): Couldn't check support for device '/sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4': Operation was cancelled [mm-base-manager.c:223] device_removed(): Device support check has been cancelled Thread 1 "ModemManager" received signal SIGSEGV, Segmentation fault. 0x00007ffff6543c50 in g_str_hash () from /usr/lib/libglib-2.0.so.0 (gdb) bt #0 0x00007ffff6543c50 in g_str_hash () at /usr/lib/libglib-2.0.so.0 #1 0x00007ffff6542b2d in () at /usr/lib/libglib-2.0.so.0 #2 0x0000000000439675 in device_removed (self=0x770900, kernel_device=0x763e60) at mm-base-manager.c:225 #3 0x0000000000439e70 in handle_uevent (client=0x769c20, action=0x81d910 "remove", device=0x7fffe4001c40, user_data=0x770900) at mm-base-manager.c:415 #4 0x00007ffff54c61c8 in ffi_call_unix64 () at /usr/lib/libffi.so.6 #5 0x00007ffff54c5c2a in ffi_call () at /usr/lib/libffi.so.6 #6 0x00007ffff682d7ae in g_cclosure_marshal_generic () at /usr/lib/libgobject-2.0.so.0 #7 0x00007ffff682cf75 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0 #8 0x00007ffff683ef82 in () at /usr/lib/libgobject-2.0.so.0 #9 0x00007ffff6847bcc in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0 #10 0x00007ffff6847faf in g_signal_emit () at /usr/lib/libgobject-2.0.so.0 #11 0x00007ffff7023c74 in () at /usr/lib/libgudev-1.0.so.0 #12 0x00007ffff655445a in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #13 0x00007ffff6554810 in () at /usr/lib/libglib-2.0.so.0 #14 0x00007ffff6554b32 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0 #15 0x0000000000437bf5 in main (argc=2, argv=0x7fffffffeb28) at main.c:180 (gdb) fr 2 #2 0x0000000000439675 in device_removed (self=0x770900, kernel_device=0x763e60) at mm-base-manager.c:225 225 g_hash_table_remove (self->priv->devices, mm_device_get_uid (device)); (gdb) p mm_device_get_uid (device) $1 = (const gchar *) 0x0 (gdb) p *device $3 = {parent = {g_type_instance = {g_class = 0x0}, ref_count = 0, qdata = 0x0}, priv = 0x7feb20}
2017-03-29core: reset GList pointers to NULL when necessaryBen Chan
When calling g_list_free_full() to free a GList in dispose(), it is necessary to reset the GList pointer to NULL as dispose() may be called more than once.
2017-03-29libmm-glib: remove explicit GDestroyNotify cast on g_object_unrefBen Chan
g_object_unref is in form of `void (*)(gpointer)`, which matches the GDestroyNotify signature. An explicit GDestroyNotify cast on g_object_unref is thus not needed.
2017-03-29cli: remove explicit GDestroyNotify cast on g_object_unrefBen Chan
g_object_unref is in form of `void (*)(gpointer)`, which matches the GDestroyNotify signature. An explicit GDestroyNotify cast on g_object_unref is thus not needed.
2017-03-29plugins: remove explicit GDestroyNotify cast on g_free / g_object_unrefBen Chan
g_free and g_object_unref are in form of `void (*)(gpointer)`, which matches the GDestroyNotify signature. An explicit GDestroyNotify cast on g_free and g_object_unref is thus not needed.
2017-03-29core: remove explicit GDestroyNotify cast on g_free / g_object_unrefBen Chan
g_free and g_object_unref are in form of `void (*)(gpointer)`, which matches the GDestroyNotify signature. An explicit GDestroyNotify cast on g_free and g_object_unref is thus not needed.
2017-03-28base-bearer: fix typo in 'bearer-default-ip-family' property nameBen Chan
2017-03-28telit: support QMI and MBIM modemsDaniele Palmas
Vendor specific plugins that support QMI or MBIM based devices need to handle the creation of these modems themselves. https://bugs.freedesktop.org/show_bug.cgi?id=100372 Original patch by Aleksander Morgado.
2017-03-28broadband-modem: fixed wrong MEM1 value passed to +CPMSCarlo Lobrano
In functions - mm_broadband_modem_lock_sms_storages - modem_messaging_set_default_storage return with error when using current_sms_mem1_storage as +CPMS value, but current_sms_mem1_storage value is UNKNOWN.
2017-03-24telit: don't require udev tags to bind devicesAleksander Morgado
The vendor id/string based rules should already be enough to get the telit plugin bind telit devices. This simplifies support for future Telit devices, as we wouldn't need any additional change in the plugin. It also helps when working with RS232 devices as the user wouldn't need to add the explicit tag to get the devices bound to this plugin. https://bugs.freedesktop.org/show_bug.cgi?id=100373
2017-03-24base-bearer: stop connection status monitoring if no TTY availableAleksander Morgado
On modems with a single TTY for both control and data, we cannot use the TTY to load connection status once we're in connected mode: Connection through a plain serial AT port (ttyUSB2) (ttyUSB2): --> 'ATD*99***2#<CR>' (ttyUSB2): <-- '<CR><LF>CONNECT 100000000<CR><LF>' (ttyUSB2): port now connected Connected bearer '/org/freedesktop/ModemManager1/Bearer/0' Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connecting -> connected) Simple connect state (8/8): All done checking if connected failed: Couldn't check current list of active PDP contexts: No AT port available to run command checking if connected failed: Couldn't check current list of active PDP contexts: No AT port available to run command checking if connected failed: Couldn't check current list of active PDP contexts: No AT port available to run command ... So, disable connection monitoring right away if that situation is detected: Connection through a plain serial AT port (ttyUSB2) (ttyUSB2): --> 'ATD*99***2#<CR>' (ttyUSB2): <-- '<CR><LF>CONNECT 100000000<CR><LF>' (ttyUSB2): port now connected Connected bearer '/org/freedesktop/ModemManager1/Bearer/0' Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connecting -> connected) Simple connect state (8/8): All done Connection monitoring is unsupported by the device ... https://bugs.freedesktop.org/show_bug.cgi?id=100376
2017-03-24broadband-bearer: set TTY as connected as soon as ATD repliesAleksander Morgado
When the connection request is done via ATD, flag the port as connected as soon as the successful response is received, so that we remove our polling on the device right away. https://bugs.freedesktop.org/show_bug.cgi?id=99541
2017-03-24broadband-modem: fix capabilities in 4G-only devicesAleksander Morgado
The +CGSM capability is saying that the modem is a 3GPP modem, but that doesn't necessarily mean it's a GSM/UMTS modem, it could be a LTE-only device. We did add the GSM_UMTS capability when +CGSM was found, so now we'll check if the device only reports 4G-only mode, and remove the capability if so. https://bugs.freedesktop.org/show_bug.cgi?id=100155
2017-03-24broadband-modem,helpers: implement AT+WS46=? response parserAleksander Morgado
We want a parser that returns the full list of combinations found.
2017-03-24huawei: ignore unsolicited message ^EONSRiccardo Vangelisti