broadband-modem-mbim: implement access technologies updates
This commit is contained in:
@@ -1397,12 +1397,15 @@ basic_connect_notification_signal_state (MMBroadbandModemMbim *self,
|
||||
static void
|
||||
update_registration_info (MMBroadbandModemMbim *self,
|
||||
MbimRegisterState state,
|
||||
MbimDataClass available_data_classes,
|
||||
gchar *operator_id_take,
|
||||
gchar *operator_name_take)
|
||||
{
|
||||
MMModem3gppRegistrationState reg_state;
|
||||
MMModemAccessTechnology act;
|
||||
|
||||
reg_state = mm_modem_3gpp_registration_state_from_mbim_register_state (state);
|
||||
act = mm_modem_access_technology_from_mbim_data_class (available_data_classes);
|
||||
|
||||
if (reg_state == MM_MODEM_3GPP_REGISTRATION_STATE_HOME ||
|
||||
reg_state == MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING) {
|
||||
@@ -1437,6 +1440,10 @@ update_registration_info (MMBroadbandModemMbim *self,
|
||||
mm_iface_modem_3gpp_update_ps_registration_state (
|
||||
MM_IFACE_MODEM_3GPP (self),
|
||||
reg_state);
|
||||
|
||||
mm_iface_modem_3gpp_update_access_technologies (
|
||||
MM_IFACE_MODEM_3GPP (self),
|
||||
act);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1444,6 +1451,7 @@ basic_connect_notification_register_state (MMBroadbandModemMbim *self,
|
||||
MbimMessage *notification)
|
||||
{
|
||||
MbimRegisterState register_state;
|
||||
MbimDataClass available_data_classes;
|
||||
gchar *provider_id;
|
||||
gchar *provider_name;
|
||||
|
||||
@@ -1452,7 +1460,7 @@ basic_connect_notification_register_state (MMBroadbandModemMbim *self,
|
||||
NULL, /* nw_error */
|
||||
®ister_state,
|
||||
NULL, /* register_mode */
|
||||
NULL, /* available_data_classes */
|
||||
&available_data_classes,
|
||||
NULL, /* current_cellular_class */
|
||||
&provider_id,
|
||||
&provider_name,
|
||||
@@ -1461,6 +1469,7 @@ basic_connect_notification_register_state (MMBroadbandModemMbim *self,
|
||||
NULL)) {
|
||||
update_registration_info (self,
|
||||
register_state,
|
||||
available_data_classes,
|
||||
provider_id,
|
||||
provider_name);
|
||||
}
|
||||
@@ -1824,6 +1833,7 @@ register_state_query_ready (MbimDevice *device,
|
||||
MbimMessage *response;
|
||||
GError *error = NULL;
|
||||
MbimRegisterState register_state;
|
||||
MbimDataClass available_data_classes;
|
||||
gchar *provider_id;
|
||||
gchar *provider_name;
|
||||
|
||||
@@ -1835,7 +1845,7 @@ register_state_query_ready (MbimDevice *device,
|
||||
NULL, /* nw_error */
|
||||
®ister_state,
|
||||
NULL, /* register_mode */
|
||||
NULL, /* available_data_classes */
|
||||
&available_data_classes,
|
||||
NULL, /* current_cellular_class */
|
||||
&provider_id,
|
||||
&provider_name,
|
||||
@@ -1847,6 +1857,7 @@ register_state_query_ready (MbimDevice *device,
|
||||
self = MM_BROADBAND_MODEM_MBIM (g_async_result_get_source_object (G_ASYNC_RESULT (simple)));
|
||||
update_registration_info (self,
|
||||
register_state,
|
||||
available_data_classes,
|
||||
provider_id,
|
||||
provider_name);
|
||||
g_object_unref (self);
|
||||
|
@@ -63,6 +63,8 @@ mm_modem_lock_from_mbim_pin_type (MbimPinType pin_type)
|
||||
return MM_MODEM_LOCK_UNKNOWN;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
MMModem3gppRegistrationState
|
||||
mm_modem_3gpp_registration_state_from_mbim_register_state (MbimRegisterState state)
|
||||
{
|
||||
@@ -84,6 +86,46 @@ mm_modem_3gpp_registration_state_from_mbim_register_state (MbimRegisterState sta
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
MMModemAccessTechnology
|
||||
mm_modem_access_technology_from_mbim_data_class (MbimDataClass data_class)
|
||||
{
|
||||
MMModemAccessTechnology mask = MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN;
|
||||
|
||||
if (data_class & MBIM_DATA_CLASS_GPRS)
|
||||
mask |= MM_MODEM_ACCESS_TECHNOLOGY_GPRS;
|
||||
if (data_class & MBIM_DATA_CLASS_EDGE)
|
||||
mask |= MM_MODEM_ACCESS_TECHNOLOGY_EDGE;
|
||||
if (data_class & MBIM_DATA_CLASS_UMTS)
|
||||
mask |= MM_MODEM_ACCESS_TECHNOLOGY_UMTS;
|
||||
if (data_class & MBIM_DATA_CLASS_HSDPA)
|
||||
mask |= MM_MODEM_ACCESS_TECHNOLOGY_HSDPA;
|
||||
if (data_class & MBIM_DATA_CLASS_HSUPA)
|
||||
mask |= MM_MODEM_ACCESS_TECHNOLOGY_HSUPA;
|
||||
if (data_class & MBIM_DATA_CLASS_LTE)
|
||||
mask |= MM_MODEM_ACCESS_TECHNOLOGY_LTE;
|
||||
if (data_class & MBIM_DATA_CLASS_1XRTT)
|
||||
mask |= MM_MODEM_ACCESS_TECHNOLOGY_1XRTT;
|
||||
if (data_class & MBIM_DATA_CLASS_1XEVDO)
|
||||
mask |= MM_MODEM_ACCESS_TECHNOLOGY_EVDO0;
|
||||
if (data_class & MBIM_DATA_CLASS_1XEVDO_REVA)
|
||||
mask |= MM_MODEM_ACCESS_TECHNOLOGY_EVDOA;
|
||||
if (data_class & MBIM_DATA_CLASS_1XEVDO_REVB)
|
||||
mask |= MM_MODEM_ACCESS_TECHNOLOGY_EVDOB;
|
||||
|
||||
/* Skip:
|
||||
* MBIM_DATA_CLASS_1XEVDV
|
||||
* MBIM_DATA_CLASS_3XRTT
|
||||
* MBIM_DATA_CLASS_UMB
|
||||
* MBIM_DATA_CLASS_CUSTOM
|
||||
*/
|
||||
|
||||
return mask;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
GError *
|
||||
mm_mobile_equipment_error_from_mbim_nw_error (MbimNwError nw_error)
|
||||
{
|
||||
|
@@ -28,6 +28,8 @@ MMModemLock mm_modem_lock_from_mbim_pin_type (MbimPinType pin_type);
|
||||
|
||||
MMModem3gppRegistrationState mm_modem_3gpp_registration_state_from_mbim_register_state (MbimRegisterState state);
|
||||
|
||||
MMModemAccessTechnology mm_modem_access_technology_from_mbim_data_class (MbimDataClass data_class);
|
||||
|
||||
GError *mm_mobile_equipment_error_from_mbim_nw_error (MbimNwError nw_error);
|
||||
|
||||
#endif /* MM_MODEM_HELPERS_MBIM_H */
|
||||
|
Reference in New Issue
Block a user