diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2010-06-16 10:38:08 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2010-06-16 10:38:08 +0200 |
commit | 6719c0b93ff9c28d945152fa63186a819ba9f141 (patch) | |
tree | 409da4106874a926915712ea942f9f14aca8b082 /drivers | |
parent | 3ba288c3960866450e0a065e05b9ae682d825f72 (diff) |
Use PROFILE DOWNLOAD to detect SIM Toolkit support for MBM
Diffstat (limited to 'drivers')
-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; } |