MBM_DELL_D5530, /* OEM of F3507g */
};
+#define MBM_FLAG_HAVE_SIM 0x1
+#define MBM_FLAG_SAW_EMRDY 0x2
+
struct mbm_data {
GAtChat *modem_port;
GAtChat *data_port;
- gboolean have_sim;
+ unsigned int flags;
struct ofono_location_reporting *lr;
enum mbm_variant variant;
struct at_util_sim_state_query *sim_state_query;
at_util_sim_state_query_free(data->sim_state_query);
data->sim_state_query = NULL;
- data->have_sim = present;
+ data->flags |= MBM_FLAG_HAVE_SIM;
ofono_modem_set_powered(modem, TRUE);
}
DBG("");
+ if (data->flags & MBM_FLAG_SAW_EMRDY)
+ return;
+
g_at_result_iter_init(&iter, result);
if (g_at_result_iter_next(&iter, "*EMRDY:") == FALSE)
if (status != 1)
return;
+ data->flags |= MBM_FLAG_SAW_EMRDY;
+
g_at_chat_send(data->modem_port, "AT+CFUN?", cfun_prefix,
cfun_query, modem, NULL);
}
sim = ofono_sim_create(modem, OFONO_VENDOR_MBM,
"atmodem", data->modem_port);
- if (data->have_sim && sim)
+ if ((data->flags & MBM_FLAG_HAVE_SIM) && sim)
ofono_sim_inserted_notify(sim, TRUE);
}