summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2023-03-30 10:58:21 +0000
committerAleksander Morgado <aleksandermj@chromium.org>2023-05-03 12:27:20 +0000
commit22ac850eb6ff59df1996001c4903b35b138ca10b (patch)
treee3285cd8bf1697dd263fe310b3b73b09e39484e1
parent6b05e268e0c95acb093cef0e747bc2fd37093878 (diff)
downloadModemManager-22ac850eb6ff59df1996001c4903b35b138ca10b.tar.gz
broadband-modem-mbim: minor refactor in speeds reporting
-rw-r--r--src/mm-broadband-modem-mbim.c41
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