diff options
author | Dan Williams <dan@ioncontrol.co> | 2025-04-01 09:51:45 -0500 |
---|---|---|
committer | Dan Williams <dan@ioncontrol.co> | 2025-04-01 10:25:43 -0500 |
commit | a420972e9b51ea543d2b6886ae1afabf7f5f8e4e (patch) | |
tree | cd9971792761f98e9407b684530fc81383cd19cc /src | |
parent | 19c817cfe93335aab2c579bb2a75f3336e36b1bd (diff) |
broadband-modem-mbim: consolidate determination of data class
Do it in a function instead of the same thing in a bunch of places.
Signed-off-by: Dan Williams <dan@ioncontrol.co>
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-broadband-modem-mbim.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 4f49a53e..3df43903 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -2211,6 +2211,18 @@ modem_power_down (MMIfaceModem *self, /*****************************************************************************/ /* Signal quality loading (Modem interface) */ +static MbimDataClass +enabled_cache_best_available_data_class (MMBroadbandModemMbim *self) +{ + MbimDataClass data_class; + + /* Best guess of current data class */ + data_class = self->priv->enabled_cache.highest_available_data_class; + if (data_class == 0) + data_class = self->priv->enabled_cache.available_data_classes; + return data_class; +} + static guint modem_load_signal_quality_finish (MMIfaceModem *self, GAsyncResult *res, @@ -2283,10 +2295,7 @@ signal_state_query_ready (MbimDevice *device, if (error) g_task_return_error (task, error); else { - /* Best guess of current data class */ - data_class = self->priv->enabled_cache.highest_available_data_class; - if (data_class == 0) - data_class = self->priv->enabled_cache.available_data_classes; + data_class = enabled_cache_best_available_data_class (self); if (mm_signal_from_mbim_signal_state (data_class, rssi, error_rate, rsrp_snr, rsrp_snr_count, self, &cdma, &evdo, &gsm, &umts, <e, &nr5g)) mm_iface_modem_signal_update (MM_IFACE_MODEM_SIGNAL (self), cdma, evdo, gsm, umts, lte, nr5g); @@ -4942,11 +4951,7 @@ basic_connect_notification_signal_state (MMBroadbandModemMbim *self, quality = mm_signal_quality_from_mbim_signal_state (coded_rssi, rsrp_snr, rsrp_snr_count, self); mm_iface_modem_update_signal_quality (MM_IFACE_MODEM (self), quality); - /* Best guess of current data class */ - data_class = self->priv->enabled_cache.highest_available_data_class; - if (data_class == 0) - data_class = self->priv->enabled_cache.available_data_classes; - + data_class = enabled_cache_best_available_data_class (self); if (mm_signal_from_mbim_signal_state (data_class, coded_rssi, coded_error_rate, rsrp_snr, rsrp_snr_count, self, &cdma, &evdo, &gsm, &umts, <e, &nr5g)) mm_iface_modem_signal_update (MM_IFACE_MODEM_SIGNAL (self), cdma, evdo, gsm, umts, lte, nr5g); @@ -5009,11 +5014,10 @@ static void update_access_technologies (MMBroadbandModemMbim *self) { MMModemAccessTechnology act; + MbimDataClass data_class; - act = mm_modem_access_technology_from_mbim_data_class (self->priv->enabled_cache.highest_available_data_class); - if (act == MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN) - act = mm_modem_access_technology_from_mbim_data_class (self->priv->enabled_cache.available_data_classes); - + data_class = enabled_cache_best_available_data_class (self); + act = mm_modem_access_technology_from_mbim_data_class (data_class); mm_iface_modem_3gpp_update_access_technologies (MM_IFACE_MODEM_3GPP (self), act); } @@ -7570,10 +7574,7 @@ mbimexv2_signal_state_query_ready (MbimDevice *device, result = g_slice_new0 (SignalLoadValuesResult); - /* Best guess of current data class */ - data_class = self->priv->enabled_cache.highest_available_data_class; - if (data_class == 0) - data_class = self->priv->enabled_cache.available_data_classes; + data_class = enabled_cache_best_available_data_class (self); if (!mm_signal_from_mbim_signal_state ( data_class, rssi, error_rate, rsrp_snr, rsrp_snr_count, self, NULL, NULL, &result->gsm, &result->umts, &result->lte, &result->nr5g)) { |