summaryrefslogtreecommitdiffstats
path: root/src/sim.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim.c')
-rw-r--r--src/sim.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/sim.c b/src/sim.c
index 695562f2..a4c5f9bf 100644
--- a/src/sim.c
+++ b/src/sim.c
@@ -1357,10 +1357,25 @@ static void sim_efphase_read_cb(int ok, int length, int record,
{
struct ofono_sim *sim = userdata;
- if (!ok || length != 1)
+ if (!ok || length != 1) {
sim->phase = OFONO_SIM_PHASE_3G;
- else
- sim->phase = data[0];
+ return;
+ }
+
+ switch (data[0]) {
+ case 0:
+ sim->phase = OFONO_SIM_PHASE_1G;
+ break;
+ case 2:
+ sim->phase = OFONO_SIM_PHASE_2G;
+ break;
+ case 3:
+ sim->phase = OFONO_SIM_PHASE_2G_PLUS;
+ break;
+ default:
+ ofono_error("Unknown phase");
+ break;
+ }
}
static void sim_initialize_after_pin(struct ofono_sim *sim)