summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-10-19 14:20:57 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-10-19 14:20:57 -0500
commitb92662634d59752b5b80ce67f8cde5185b0f3105 (patch)
tree804b9a8928676dcb9cf31b81f9e48834c2b5d0c8 /src
parentcfb3cd9647226811db8e1ff3381656a26ef32517 (diff)
downloadofono-b92662634d59752b5b80ce67f8cde5185b0f3105.tar.bz2
sim: Read EFust and EFest after phase is known
Diffstat (limited to 'src')
-rw-r--r--src/sim.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/sim.c b/src/sim.c
index a4c5f9bf..d87c71f4 100644
--- a/src/sim.c
+++ b/src/sim.c
@@ -1359,6 +1359,11 @@ static void sim_efphase_read_cb(int ok, int length, int record,
if (!ok || length != 1) {
sim->phase = OFONO_SIM_PHASE_3G;
+
+ ofono_sim_read(sim, SIM_EFUST_FILEID,
+ OFONO_SIM_FILE_STRUCTURE_TRANSPARENT,
+ sim_efust_read_cb, sim);
+
return;
}
@@ -1374,8 +1379,12 @@ static void sim_efphase_read_cb(int ok, int length, int record,
break;
default:
ofono_error("Unknown phase");
- break;
+ return;
}
+
+ ofono_sim_read(sim, SIM_EFSST_FILEID,
+ OFONO_SIM_FILE_STRUCTURE_TRANSPARENT,
+ sim_efsst_read_cb, sim);
}
static void sim_initialize_after_pin(struct ofono_sim *sim)
@@ -1395,16 +1404,6 @@ static void sim_initialize_after_pin(struct ofono_sim *sim)
ofono_sim_read(sim, SIM_EF_CPHS_INFORMATION_FILEID,
OFONO_SIM_FILE_STRUCTURE_TRANSPARENT,
sim_cphs_information_read_cb, sim);
-
- /* Also retrieve the GSM service table */
- if (sim->phase >= OFONO_SIM_PHASE_3G)
- ofono_sim_read(sim, SIM_EFUST_FILEID,
- OFONO_SIM_FILE_STRUCTURE_TRANSPARENT,
- sim_efust_read_cb, sim);
- else
- ofono_sim_read(sim, SIM_EFSST_FILEID,
- OFONO_SIM_FILE_STRUCTURE_TRANSPARENT,
- sim_efsst_read_cb, sim);
}
static void sim_pin_query_cb(const struct ofono_error *error,