diff options
-rw-r--r-- | drivers/mbmmodem/stk.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/mbmmodem/stk.c b/drivers/mbmmodem/stk.c index f1490d05..cea902e2 100644 --- a/drivers/mbmmodem/stk.c +++ b/drivers/mbmmodem/stk.c @@ -185,25 +185,18 @@ static void stkend_notify(GAtResult *result, gpointer user_data) static void mbm_stkc_cb(gboolean ok, GAtResult *result, gpointer user_data) { -} - -static gboolean mbm_stk_register(gpointer user) -{ - struct ofono_stk *stk = user; + struct ofono_stk *stk = user_data; struct stk_data *sd = ofono_stk_get_data(stk); + if (!ok) + return; + g_at_chat_register(sd->chat, "*STKI:", stki_notify, FALSE, stk, NULL); g_at_chat_register(sd->chat, "*STKN:", stkn_notify, FALSE, stk, NULL); g_at_chat_register(sd->chat, "*STKEND", stkend_notify, FALSE, stk, NULL); - /* Perform PROFILE DOWNLOAD and enable *STKI / *STKN */ - g_at_chat_send(sd->chat, "AT*STKC=1,\"19E1FFFF0000FF7FFF03FEFF\"", - none_prefix, mbm_stkc_cb, stk, NULL); - ofono_stk_register(stk); - - return FALSE; } static int mbm_stk_probe(struct ofono_stk *stk, unsigned int vendor, void *data) @@ -215,7 +208,10 @@ static int mbm_stk_probe(struct ofono_stk *stk, unsigned int vendor, void *data) sd->chat = chat; ofono_stk_set_data(stk, sd); - g_idle_add(mbm_stk_register, stk); + + /* Perform PROFILE DOWNLOAD and enable *STKI / *STKN */ + g_at_chat_send(sd->chat, "AT*STKC=1,\"19E1FFFF0000FF7FFF03FEFF\"", + none_prefix, mbm_stkc_cb, stk, NULL); return 0; } |