broadband-modem-mbim: update sim-type and esim-status of inactive slot
During initialization if the number of slots is more than 1 then update the sim-type and esim-status of the inactive slot as well.
This commit is contained in:
@@ -5148,7 +5148,9 @@ update_sim_from_slot_status (MMBroadbandModemMbim *self,
|
|||||||
MbimUiccSlotState slot_status,
|
MbimUiccSlotState slot_status,
|
||||||
guint slot_index)
|
guint slot_index)
|
||||||
{
|
{
|
||||||
g_autoptr(MMBaseSim) sim = NULL;
|
g_autoptr(MMBaseSim) sim = NULL;
|
||||||
|
MMSimType sim_type = MM_SIM_TYPE_UNKNOWN;
|
||||||
|
MMSimEsimStatus esim_status = MM_SIM_ESIM_STATUS_UNKNOWN;
|
||||||
|
|
||||||
mm_obj_dbg (self, "Updating sim at slot %d", slot_index + 1);
|
mm_obj_dbg (self, "Updating sim at slot %d", slot_index + 1);
|
||||||
|
|
||||||
@@ -5159,9 +5161,21 @@ update_sim_from_slot_status (MMBroadbandModemMbim *self,
|
|||||||
slot_status == MBIM_UICC_SLOT_STATE_ACTIVE_ESIM_NO_PROFILES ||
|
slot_status == MBIM_UICC_SLOT_STATE_ACTIVE_ESIM_NO_PROFILES ||
|
||||||
slot_status == MBIM_UICC_SLOT_STATE_NOT_READY ||
|
slot_status == MBIM_UICC_SLOT_STATE_NOT_READY ||
|
||||||
slot_status == MBIM_UICC_SLOT_STATE_ERROR) {
|
slot_status == MBIM_UICC_SLOT_STATE_ERROR) {
|
||||||
|
|
||||||
|
if (slot_status == MBIM_UICC_SLOT_STATE_ACTIVE)
|
||||||
|
sim_type = MM_SIM_TYPE_PHYSICAL;
|
||||||
|
else if (slot_status == MBIM_UICC_SLOT_STATE_ACTIVE_ESIM) {
|
||||||
|
sim_type = MM_SIM_TYPE_ESIM;
|
||||||
|
esim_status = MM_SIM_ESIM_STATUS_WITH_PROFILES;
|
||||||
|
} else if (slot_status == MBIM_UICC_SLOT_STATE_ACTIVE_ESIM_NO_PROFILES) {
|
||||||
|
sim_type = MM_SIM_TYPE_ESIM;
|
||||||
|
esim_status = MM_SIM_ESIM_STATUS_NO_PROFILES;
|
||||||
|
}
|
||||||
sim = mm_sim_mbim_new_initialized (MM_BASE_MODEM (self),
|
sim = mm_sim_mbim_new_initialized (MM_BASE_MODEM (self),
|
||||||
slot_index,
|
slot_index,
|
||||||
FALSE,
|
FALSE,
|
||||||
|
sim_type,
|
||||||
|
esim_status,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
@@ -8365,6 +8379,8 @@ query_slot_information_status_ready (MbimDevice *device,
|
|||||||
LoadSimSlotsContext *ctx;
|
LoadSimSlotsContext *ctx;
|
||||||
MMBaseSim *sim;
|
MMBaseSim *sim;
|
||||||
gboolean sim_active = FALSE;
|
gboolean sim_active = FALSE;
|
||||||
|
MMSimType sim_type = MM_SIM_TYPE_UNKNOWN;
|
||||||
|
MMSimEsimStatus esim_status = MM_SIM_ESIM_STATUS_UNKNOWN;
|
||||||
|
|
||||||
self = g_task_get_source_object (task);
|
self = g_task_get_source_object (task);
|
||||||
ctx = g_task_get_task_data (task);
|
ctx = g_task_get_task_data (task);
|
||||||
@@ -8393,9 +8409,22 @@ query_slot_information_status_ready (MbimDevice *device,
|
|||||||
slot_state == MBIM_UICC_SLOT_STATE_ACTIVE_ESIM_NO_PROFILES ||
|
slot_state == MBIM_UICC_SLOT_STATE_ACTIVE_ESIM_NO_PROFILES ||
|
||||||
slot_state == MBIM_UICC_SLOT_STATE_NOT_READY ||
|
slot_state == MBIM_UICC_SLOT_STATE_NOT_READY ||
|
||||||
slot_state == MBIM_UICC_SLOT_STATE_ERROR) {
|
slot_state == MBIM_UICC_SLOT_STATE_ERROR) {
|
||||||
|
|
||||||
|
if (slot_state == MBIM_UICC_SLOT_STATE_ACTIVE)
|
||||||
|
sim_type = MM_SIM_TYPE_PHYSICAL;
|
||||||
|
else if (slot_state == MBIM_UICC_SLOT_STATE_ACTIVE_ESIM) {
|
||||||
|
sim_type = MM_SIM_TYPE_ESIM;
|
||||||
|
esim_status = MM_SIM_ESIM_STATUS_WITH_PROFILES;
|
||||||
|
} else if (slot_state == MBIM_UICC_SLOT_STATE_ACTIVE_ESIM_NO_PROFILES) {
|
||||||
|
sim_type = MM_SIM_TYPE_ESIM;
|
||||||
|
esim_status = MM_SIM_ESIM_STATUS_NO_PROFILES;
|
||||||
|
}
|
||||||
|
|
||||||
sim = mm_sim_mbim_new_initialized (MM_BASE_MODEM (self),
|
sim = mm_sim_mbim_new_initialized (MM_BASE_MODEM (self),
|
||||||
slot_index,
|
slot_index,
|
||||||
sim_active,
|
sim_active,
|
||||||
|
sim_type,
|
||||||
|
esim_status,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
|
@@ -1186,14 +1186,16 @@ mm_sim_mbim_new (MMBaseModem *modem,
|
|||||||
|
|
||||||
MMBaseSim *
|
MMBaseSim *
|
||||||
mm_sim_mbim_new_initialized (MMBaseModem *modem,
|
mm_sim_mbim_new_initialized (MMBaseModem *modem,
|
||||||
guint slot_number,
|
guint slot_number,
|
||||||
gboolean active,
|
gboolean active,
|
||||||
const gchar *sim_identifier,
|
MMSimType sim_type,
|
||||||
const gchar *imsi,
|
MMSimEsimStatus esim_status,
|
||||||
const gchar *eid,
|
const gchar *sim_identifier,
|
||||||
const gchar *operator_identifier,
|
const gchar *imsi,
|
||||||
const gchar *operator_name,
|
const gchar *eid,
|
||||||
const GStrv emergency_numbers)
|
const gchar *operator_identifier,
|
||||||
|
const gchar *operator_name,
|
||||||
|
const GStrv emergency_numbers)
|
||||||
{
|
{
|
||||||
MMBaseSim *sim;
|
MMBaseSim *sim;
|
||||||
|
|
||||||
@@ -1201,6 +1203,8 @@ mm_sim_mbim_new_initialized (MMBaseModem *modem,
|
|||||||
MM_BASE_SIM_MODEM, modem,
|
MM_BASE_SIM_MODEM, modem,
|
||||||
MM_BASE_SIM_SLOT_NUMBER, slot_number,
|
MM_BASE_SIM_SLOT_NUMBER, slot_number,
|
||||||
"active", active,
|
"active", active,
|
||||||
|
"sim-type", sim_type,
|
||||||
|
"esim-status", esim_status,
|
||||||
"sim-identifier", sim_identifier,
|
"sim-identifier", sim_identifier,
|
||||||
"eid", eid,
|
"eid", eid,
|
||||||
"operator-identifier", operator_identifier,
|
"operator-identifier", operator_identifier,
|
||||||
|
@@ -51,12 +51,14 @@ void mm_sim_mbim_new (MMBaseModem *modem,
|
|||||||
MMBaseSim *mm_sim_mbim_new_finish (GAsyncResult *res,
|
MMBaseSim *mm_sim_mbim_new_finish (GAsyncResult *res,
|
||||||
GError **error);
|
GError **error);
|
||||||
MMBaseSim *mm_sim_mbim_new_initialized (MMBaseModem *modem,
|
MMBaseSim *mm_sim_mbim_new_initialized (MMBaseModem *modem,
|
||||||
guint slot_number,
|
guint slot_number,
|
||||||
gboolean active,
|
gboolean active,
|
||||||
const gchar *sim_identifier,
|
MMSimType sim_type,
|
||||||
const gchar *imsi,
|
MMSimEsimStatus esim_status,
|
||||||
const gchar *eid,
|
const gchar *sim_identifier,
|
||||||
const gchar *operator_identifier,
|
const gchar *imsi,
|
||||||
const gchar *operator_name,
|
const gchar *eid,
|
||||||
const GStrv emergency_numbers);
|
const gchar *operator_identifier,
|
||||||
|
const gchar *operator_name,
|
||||||
|
const GStrv emergency_numbers);
|
||||||
#endif /* MM_SIM_MBIM_H */
|
#endif /* MM_SIM_MBIM_H */
|
||||||
|
Reference in New Issue
Block a user