diff options
author | Nagi Marupaka <nmarupaka@google.com> | 2023-04-19 22:51:40 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2023-05-10 09:02:16 +0000 |
commit | 17ed63637fea7ab7238880ec5eb75df910355dd2 (patch) | |
tree | c44543a92fde2c3cc05c773b0fdf19e8e50771e1 | |
parent | 9007d7999dcc96237ebef19413112b09db777876 (diff) | |
download | ModemManager-17ed63637fea7ab7238880ec5eb75df910355dd2.tar.gz |
iface-modem-signal: send a query after threshold set up
After the setup of threshold for signal state notifications, trigger a
query of the current signal state values.
-rw-r--r-- | src/mm-broadband-modem-mbim.c | 12 | ||||
-rw-r--r-- | src/mm-iface-modem-signal.c | 11 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index e18fd7afc..1f6d12332 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -6759,6 +6759,18 @@ modem_signal_load_values (MMIfaceModemSignal *self, task = g_task_new (self, NULL, callback, user_data); + if (mbim_device_check_ms_mbimex_version (device, 2, 0)) { + message = mbim_message_signal_state_query_new (NULL); + mbim_device_command (device, + message, + 5, + NULL, + (GAsyncReadyCallback)signal_state_query_ready, + task); + mbim_message_unref (message); + return; + } + if (MM_BROADBAND_MODEM_MBIM (self)->priv->is_atds_signal_supported) { message = mbim_message_atds_signal_query_new (NULL); mbim_device_command (device, diff --git a/src/mm-iface-modem-signal.c b/src/mm-iface-modem-signal.c index 9f9600011..fe7d0c7ad 100644 --- a/src/mm-iface-modem-signal.c +++ b/src/mm-iface-modem-signal.c @@ -249,7 +249,7 @@ load_values_ready (MMIfaceModemSignal *self, } static gboolean -polling_context_cb (MMIfaceModemSignal *self) +query_signal_values (MMIfaceModemSignal *self) { MM_IFACE_MODEM_SIGNAL_GET_INTERFACE (self)->load_values ( self, @@ -285,10 +285,10 @@ polling_restart (MMIfaceModemSignal *self) /* Start/restart polling */ if (priv->timeout_source) g_source_remove (priv->timeout_source); - priv->timeout_source = g_timeout_add_seconds (priv->rate, (GSourceFunc) polling_context_cb, self); + priv->timeout_source = g_timeout_add_seconds (priv->rate, (GSourceFunc) query_signal_values, self); /* Also launch right away */ - polling_context_cb (self); + query_signal_values (self); } /*****************************************************************************/ @@ -311,8 +311,11 @@ setup_thresholds_ready (MMIfaceModemSignal *self, if (!MM_IFACE_MODEM_SIGNAL_GET_INTERFACE (self)->setup_thresholds_finish (self, res, &error)) g_task_return_error (task, error); - else + else { + /* launch a query right away */ + query_signal_values (self); g_task_return_boolean (task, TRUE); + } g_object_unref (task); } |