summaryrefslogtreecommitdiffstats
path: root/src/modem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modem.c')
-rw-r--r--src/modem.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/modem.c b/src/modem.c
index b9353284..df74be31 100644
--- a/src/modem.c
+++ b/src/modem.c
@@ -1117,10 +1117,13 @@ static void emit_modems()
g_free(modems);
}
-static void modem_sim_ready(void *user)
+static void modem_sim_ready(void *user, enum ofono_sim_state new_state)
{
struct ofono_modem *modem = user;
+ if (new_state != OFONO_SIM_STATE_READY)
+ return;
+
if (modem->driver->post_sim)
modem->driver->post_sim(modem);
@@ -1138,12 +1141,10 @@ static void sim_watch(struct ofono_atom *atom,
}
modem->sim = __ofono_atom_get_data(atom);
- modem->sim_ready_watch = ofono_sim_add_ready_watch(modem->sim,
+ modem->sim_ready_watch = ofono_sim_add_state_watch(modem->sim,
modem_sim_ready,
modem, NULL);
-
- if (ofono_sim_get_ready(modem->sim))
- modem_sim_ready(modem);
+ modem_sim_ready(modem, ofono_sim_get_state(modem->sim));
}
int ofono_modem_register(struct ofono_modem *modem)