Commit Graph

1492 Commits

Author SHA1 Message Date
Ben Chan
8df63e385c huawei: port modem_voice_disable_unsolicited_events to use GTask 2017-09-08 17:45:29 +02:00
Ben Chan
68075a23a7 huawei: port modem_voice_enable_unsolicited_events to use GTask 2017-09-08 17:45:29 +02:00
Ben Chan
5e8a7aad76 huawei: port modem_voice_{setup,cleanup}_unsolicited_events to use GTask 2017-09-08 17:45:29 +02:00
Ben Chan
46866b08be huawei: port modem_cdma_{setup,cleanup}_unsolicited_events to use GTask 2017-09-08 17:45:29 +02:00
Ben Chan
5f641afe07 huawei: port modem_3gpp_disable_unsolicited_events to use GTask 2017-09-08 17:45:29 +02:00
Ben Chan
074e0f89fc huawei: port modem_3gpp_enable_unsolicited_events to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
02ce611d5c huawei: port modem_3gpp_{setup,cleanup}_unsolicited_events to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
38bafe021e huawei: port {enable,disable}_location_gathering to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
6ebc07f882 huawei: port location_load_capabilities to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
36d975bd4e huawei: port modem_after_sim_unlock to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
0aae6d3e35 huawei: port modem_time_check_support to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
60129a6fde huawei: port modem_load_signal_quality to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
0c468bb1a4 huawei: port load_sim_identifier to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
1495fb1d1d huawei: port load_power_state to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
046f1b3301 huawei: port load_supported_modes to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
c7ec2c4fbb huawei: port load_current_modes to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
bf03f1e2d7 huawei: port set_current_modes to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
5d9c4d70a1 huawei: port set_current_bands to use GTask 2017-09-08 17:45:28 +02:00
Ben Chan
8b9402da2b huawei: port sysinfo to use GTask 2017-09-08 17:45:28 +02:00
Aleksander Morgado
833243570f wavecom: port modem_after_sim_unlock to use GTask 2017-09-07 19:28:23 +02:00
Aleksander Morgado
288ebab106 wavecom: port register_in_network to use GTask 2017-09-07 19:28:23 +02:00
Aleksander Morgado
ea3d20e98c wavecom: port set_current_bands to use GTask 2017-09-07 19:28:23 +02:00
Aleksander Morgado
dd4ef7dc23 wavecom: port load_current_bands to use GTask 2017-09-07 19:28:23 +02:00
Aleksander Morgado
e2b3b87674 wavecom: port load_supported_bands to use GTask 2017-09-07 19:28:23 +02:00
Aleksander Morgado
bb5a950102 wavecom: port set_current_modes to use GTask 2017-09-07 19:28:23 +02:00
Aleksander Morgado
fc33fe69b4 wavecom: port load_current_modes to use GTask 2017-09-07 19:28:23 +02:00
Aleksander Morgado
02e16d42bc wavecom: port load_supported_modes to GTask 2017-09-07 19:28:23 +02:00
Aleksander Morgado
d135c56f0f huawei: update frequency bands support
Updated to use the non-deprecated MMModemBand values.
2017-09-07 10:55:17 +02:00
Aleksander Morgado
aae7105743 cinterion: update frequency bands support
Updated to use the non-deprecated MMModemBand values.
2017-09-07 10:55:17 +02:00
Aleksander Morgado
44a850f8ad telit: update frequency bands support
Updated to use the non-deprecated MMModemBand values.

Also, use explicit enums for 2G/3G bands when building internal flags,
as relying on UTRAN band 7 (MM_MODEM_BAND_U2600) being greater than
UTRAN bands 8 and 9 is a MM implementation issue.
2017-09-07 10:55:17 +02:00
Aleksander Morgado
4c921cd584 wavecom: update frequency bands support
Updated to use the non-deprecated MMModemBand values.
2017-09-07 10:55:17 +02:00
Aleksander Morgado
2c96b31590 icera: update frequency bands support
Updated to use the non-deprecated MMModemBand values.
2017-09-07 10:55:17 +02:00
Aleksander Morgado
f54779732a novatel-lte: update frequency bands support
Several changes here:
  * Updated to use the non-deprecated MMModemBand values.
  * Added support for GSM 450, GSM 480 and GSM 750.
2017-09-07 10:55:17 +02:00
Aleksander Morgado
55316cabd4 ublox: update frequency bands support
Updated to use the non-deprecated MMModemBand values.
2017-09-07 10:55:17 +02:00
Aleksander Morgado
a29610f25d plugin,port-probe: always cast SEND_DELAY value to guint64
Program received signal SIGSEGV, Segmentation fault.
    strchr () at ../sysdeps/arm/armv6/strchr.S:28
    28    ../sysdeps/arm/armv6/strchr.S: No such file or directory.
    (gdb) bt
    #0  strchr () at ../sysdeps/arm/armv6/strchr.S:28
    #1  0x76b121c8 in g_param_spec_pool_lookup () from ~/buildroot/output/staging/lib/libgobject-2.0.so.0
    #2  0x76b0cf44 in g_object_new_valist () from ~/buildroot/output/staging/lib/libgobject-2.0.so.0
    #3  0x76b0d39c in g_object_new () from ~/buildroot/output/staging/lib/libgobject-2.0.so.0
    #4  0x75f75e40 in mm_plugin_create () at ublox/mm-plugin-ublox.c:99
    #5  0x00031550 in load_plugin (path=0xe9b68 "/usr/lib/ModemManager/libmm-plugin-ublox.so") at mm-plugin-manager.c:1521
    #6  load_plugins (error=0x7efffa68, self=0xdc4f0) at mm-plugin-manager.c:1574
    #7  initable_init (initable=<optimized out>, cancellable=<optimized out>, error=0x7efffa68) at mm-plugin-manager.c:1679
    #8  0x76b9b278 in g_initable_new_valist () from ~/buildroot/output/staging/lib/libgio-2.0.so.0
    #9  0x76b9b2e0 in g_initable_new () from ~/buildroot/output/staging/lib/libgio-2.0.so.0
    #10 0x000324d0 in mm_plugin_manager_new (plugin_dir=0xe9c40 "/usr/lib/ModemManager", error=error@entry=0x7efffa68) at mm-plugin-manager.c:1620
    #11 0x0002da08 in initable_init (initable=0xddb40, cancellable=<optimized out>, error=0x7efffa68) at mm-base-manager.c:1113
    #12 0x76b9b278 in g_initable_new_valist () from ~/buildroot/output/staging/lib/libgio-2.0.so.0
    #13 0x76b9b2e0 in g_initable_new () from ~/buildroot/output/staging/lib/libgio-2.0.so.0
    #14 0x0002e81c in mm_base_manager_new (connection=connection@entry=0xe1070, plugin_dir=plugin_dir@entry=0x9efb0 "/usr/lib/ModemManager",
        auto_scan=auto_scan@entry=1, initial_kernel_events=initial_kernel_events@entry=0x0, enable_test=0, error=0x7efffa68, error@entry=0x7efffa60)
        at mm-base-manager.c:957
    #15 0x0002b6ec in bus_acquired_cb (connection=0xe1070, name=<optimized out>, user_data=<optimized out>) at main.c:87
    #16 0x76c26864 in connection_get_cb () from ~/buildroot/output/staging/lib/libgio-2.0.so.0
    #17 0x76bc76cc in g_task_return_now () from ~/buildroot/output/staging/lib/libgio-2.0.so.0
    #18 0x76bc7d50 in g_task_return () from
    ~/buildroot/output/staging/lib/libgio-2.0.so.0

See similar bug in GStreamer:
https://bugzilla.gnome.org/show_bug.cgi?id=740191
2017-09-05 20:16:18 +02:00
Aleksander Morgado
530ebf9063 telit: reorder code to keep the bottom-top flow for async methods 2017-09-04 17:59:59 +02:00
Aleksander Morgado
ada9934e90 telit: explicitly flag as const the constant string 2017-09-04 17:59:59 +02:00
Aleksander Morgado
f6ae514405 telit: plug memleak when SIM object cannot be acquired
The GTask wasn't being disposed.
2017-09-04 17:59:59 +02:00
Aleksander Morgado
be079381c0 telit: avoid leaking SIM object
We were getting the SIM object for all paths, but only using (and
disposing it) in the AFTER_POWER_UP_STEP_GET_SIM_IDENTIFIER step.

Update the logic to only retrieve, use and dispose the SIM object in
the step that is needed, and therefore avoid leaking it in the
remaining steps.
2017-09-04 17:59:59 +02:00
Carlo Lobrano
76916de313 telit-plugin: handle QSS unsolicited due to power state transitions
When transitioning between power-low and power-on modes, Telit modems
switch the SIM off/on, which leads to the emission of #QSS unsolicited not
related to actual SIM swaps.

To handle this #QSS unsolicited, this patch:

* disables reacting on #QSS unsolicited when modem_power_down is received
* implements modem_after_power_up that:
    - checks whether the SIM has been changed, matching cached SIM
      Identifier with the value in the current SIM. If SIM Identifier,
      is different, sim hot swap ports detected is called.
    - re-enables reacting on #QSS unsolicited
2017-09-04 17:59:59 +02:00
Aleksander Morgado
a1210af7d5 wavecom: fix async operation completion 2017-08-29 07:45:34 +02:00
Aleksander Morgado
1f2bb64028 charsets: ensure all methods are prefixed with 'mm_' 2017-08-16 16:08:15 +02:00
Aleksander Morgado
f455ce33b4 mbm: set GPS data port for DellDW5560
See https://lists.freedesktop.org/archives/modemmanager-devel/2017-August/005506.html
2017-08-04 17:10:41 +02:00
Ben Chan
fbf397cd6f altair-lte: don't use send-delay=0
On the modem with firmware revision ALT3100_04_05_06_10_A8_TF
(LTEUSB_02_04_05_10_53), it's observed that port probing doesn't
complete successfully when send-delay=0 is used.
2017-08-04 15:18:35 +02:00
Ben Chan
625c204761 huawei: remove redundant call to huawei_parse_auth_type()
This patch removes a redundant `encoded_auth = huawei_parse_auth_type (auth)`
in connect_3gpp_context_step().
2017-08-04 14:02:06 +02:00
Ben Chan
e1823e605e huawei: ensure MMBearerConnectResult populated into GSimpleAsyncResult
During the CONNECT_3GPP_CONTEXT_STEP_LAST step,
connect_3gpp_context_step() conditionally creates and populates a
MMBearerConnectResult object into the GSimpleAsyncResult object when the
ipv4_config field of the Connect3gppContext struct is set. That assumes
the ipv4_config field is always initialized in
connect_dhcp_check_ready() during the
CONNECT_3GPP_CONTEXT_STEP_IP_CONFIG step. Instead of having such an
assumption, this patch modifies connect_3gpp to always initialize
the ipv4_config field, such that connect_3gpp_context_step() always
populates a MMBearerConnectResult object into the GSimpleAsyncResult
object.
2017-08-03 12:35:40 +02:00
Ben Chan
6132a4d2ae novatel: avoid calling qcdm_result_unref on NULL QcdmResult 2017-08-03 12:19:37 +02:00
Ben Chan
5accaf504f ublox: remove unused variable 2017-08-03 12:19:37 +02:00
Carlo Lobrano
b5dba9ad1c telit-plugin: ignore QSS when SIM-ME interface is locked
With some modems, the lock/unlock of the SIM-ME interface with +CSIM=1/0
command is followed by #QSS unsolicited messages. With the current
implementation, this messages are mistaken for SIM swap events and so the
modem is first dropped and then re-probed.

With this patch, the plugin takes into account the SIM-ME lock state when
parsing #QSS unsolicited, so that the QSS handler can correctly
elaborate the messages that are not related to SIM swap events.
2017-08-01 10:11:12 +02:00
Carlo Lobrano
9cdc237241 sim hot swap: improved error management
Currently, when SIM hot swap fails in either mm-iface or plugin, the
ModemManager still opens ports context and prints a message saying that
SIM hot swap is supported and that it's waiting for SIM insertion,
instead of clearly saying that SIM hot swap is not working.

This patch:

1. introduces a new property MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED
   which is FALSE by default and set to TRUE only when
   setup_sim_hot_swap_finish() succeded.
2. subordinates the completion of SIM hot swap setup (in
   mm-broadband-modem) and the related messages to the the value of
   MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED

Finally, this patch replaces the MBIM's sim_hot_swap_on private property
with the new property MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, since they have the
same meaning.
2017-08-01 10:02:01 +02:00