diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2023-03-30 10:58:21 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksandermj@chromium.org> | 2023-05-03 12:27:20 +0000 |
commit | 22ac850eb6ff59df1996001c4903b35b138ca10b (patch) | |
tree | e3285cd8bf1697dd263fe310b3b73b09e39484e1 | |
parent | 6b05e268e0c95acb093cef0e747bc2fd37093878 (diff) | |
download | ModemManager-22ac850eb6ff59df1996001c4903b35b138ca10b.tar.gz |
broadband-modem-mbim: minor refactor in speeds reporting
-rw-r--r-- | src/mm-broadband-modem-mbim.c | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 6d0e6a147..6d9ede7c4 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -5027,7 +5027,7 @@ basic_connect_notification_subscriber_ready_status (MMBroadbandModemMbim *self, } /*****************************************************************************/ -/* Packet service updates */ +/* Speed updates */ void mm_broadband_modem_mbim_get_speeds (MMBroadbandModemMbim *self, @@ -5054,6 +5054,34 @@ bearer_list_report_speeds (MMBaseBearer *bearer, } static void +update_bearer_speeds (MMBroadbandModemMbim *self, + guint64 uplink_speed, + guint64 downlink_speed) +{ + g_autoptr(MMBearerList) bearer_list = NULL; + + if ((self->priv->packet_service_uplink_speed == uplink_speed) && + (self->priv->packet_service_downlink_speed == downlink_speed)) + return; + + self->priv->packet_service_uplink_speed = uplink_speed; + self->priv->packet_service_downlink_speed = downlink_speed; + + g_object_get (self, + MM_IFACE_MODEM_BEARER_LIST, &bearer_list, + NULL); + if (!bearer_list) + return; + + mm_bearer_list_foreach (bearer_list, + (MMBearerListForeachFunc)bearer_list_report_speeds, + self); +} + +/*****************************************************************************/ +/* Packet service updates */ + +static void basic_connect_notification_packet_service (MMBroadbandModemMbim *self, MbimDevice *device, MbimMessage *notification) @@ -5072,7 +5100,6 @@ basic_connect_notification_packet_service (MMBroadbandModemMbim *self, g_autofree gchar *frequency_range_str = NULL; const gchar *nw_error_str; g_autoptr(GError) error = NULL; - g_autoptr(MMBearerList) bearer_list = NULL; if (mbim_device_check_ms_mbimex_version (device, 3, 0)) { if (!mbim_message_ms_basic_connect_v3_packet_service_notification_parse ( @@ -5154,15 +5181,7 @@ basic_connect_notification_packet_service (MMBroadbandModemMbim *self, update_packet_service_info (self, packet_service_state); - self->priv->packet_service_uplink_speed = uplink_speed; - self->priv->packet_service_downlink_speed = downlink_speed; - g_object_get (self, - MM_IFACE_MODEM_BEARER_LIST, &bearer_list, - NULL); - if (bearer_list) - mm_bearer_list_foreach (bearer_list, - (MMBearerListForeachFunc)bearer_list_report_speeds, - self); + update_bearer_speeds (self, uplink_speed, downlink_speed); } static void |