summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-10-19 14:06:52 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-10-19 14:07:41 -0500
commit04755acc3a44ed7cb478f3aaec0e3bbfa2d5067d (patch)
treeddbe900ae54e0210ddd3090d8904674bb7f3bd47 /src
parent93f7bca25f0e57fbdff9871946dc8673a6838fc5 (diff)
downloadofono-04755acc3a44ed7cb478f3aaec0e3bbfa2d5067d.tar.bz2
sim: Fix setting the correct phase from EFphase
Diffstat (limited to 'src')
-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)