summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-09-29 23:23:29 +0900
committerMarcel Holtmann <marcel@holtmann.org>2010-09-29 23:23:29 +0900
commit3ad4e5ab21873e7b4ed44f3314bd08d1e075eb53 (patch)
tree28c15bac4b3d8357ef66e8eb0143d7ec3537d082
parent1f2349ee0b07244cec2fa721a15e7ff22344a044 (diff)
downloadofono-3ad4e5ab21873e7b4ed44f3314bd08d1e075eb53.tar.bz2
atmodem: Update IFX specific SIM ready checking
It seems that the XSIM notification doesn't really send SIM ready status. It sends ready to attach instead: > AT+CPIN="0000"\r < \r\nOK\r\n < \r\n+XLOCK: "PN",5,0,"PU",5,0,"PP",5,0,"PC",5,0,"PS",5,0\r\n < \r\n+XSIM: 7\r\n So either SIM ready or ready to attach is received more to the post_sim state.
-rw-r--r--drivers/atmodem/sim.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c
index 987dd7c1..d0a7148c 100644
--- a/drivers/atmodem/sim.c
+++ b/drivers/atmodem/sim.c
@@ -554,9 +554,13 @@ static void at_xsim_notify(GAtResult *result, gpointer user_data)
if (!g_at_result_iter_next_number(&iter, &state))
return;
- /* check for state 3 (PIN verified – Ready) */
- if (state != 3)
+ switch (state) {
+ case 3: /* PIN verified – Ready */
+ case 7: /* ready for attach (+COPS) */
+ break;
+ default:
return;
+ }
cb(&error, cbd->data);