* [PATCH] sim: query facility during initialization in chain manner
@ 2016-08-06 4:23 Samrat Guha Niyogi
2016-08-06 15:52 ` Denis Kenzior
0 siblings, 1 reply; 2+ messages in thread
From: Samrat Guha Niyogi @ 2016-08-06 4:23 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 2714 bytes --]
query facility during initialization is modified from back
to back invocation to chain manner to keep it inline with
RIL design. All vendor RIL does not support back to back
handling since RIL telephony framework sends the request
synchronously.
---
src/sim.c | 42 ++++++++++++++++++++++++++----------------
1 file changed, 26 insertions(+), 16 deletions(-)
diff --git a/src/sim.c b/src/sim.c
index 6d9ed5d..0bbd1ef 100644
--- a/src/sim.c
+++ b/src/sim.c
@@ -2468,31 +2468,48 @@ static void sim_set_locked_pin(struct ofono_sim *sim,
g_strfreev(locked_pins);
}
-static void sim_query_fac_imsilock_cb(const struct ofono_error *error,
+static void sim_query_fac_pinlock_cb(const struct ofono_error *error,
ofono_bool_t status, void *data)
{
+ struct ofono_sim *sim = data;
+
if (error->type != OFONO_ERROR_TYPE_NO_ERROR)
- return;
+ goto done;
- sim_set_locked_pin(data, OFONO_SIM_PASSWORD_PHSIM_PIN, status);
+ sim_set_locked_pin(data, OFONO_SIM_PASSWORD_SIM_PIN, status);
+
+done:
+ sim_initialize(sim);
}
static void sim_query_fac_networklock_cb(const struct ofono_error *error,
ofono_bool_t status, void *data)
{
+ struct ofono_sim *sim = data;
if (error->type != OFONO_ERROR_TYPE_NO_ERROR)
- return;
+ goto done;
sim_set_locked_pin(data, OFONO_SIM_PASSWORD_PHNET_PIN, status);
+
+done:
+ sim->driver->query_facility_lock(sim,
+ OFONO_SIM_PASSWORD_SIM_PIN,
+ sim_query_fac_pinlock_cb, sim);
}
-static void sim_query_fac_pinlock_cb(const struct ofono_error *error,
+static void sim_query_fac_imsilock_cb(const struct ofono_error *error,
ofono_bool_t status, void *data)
{
+ struct ofono_sim *sim = data;
if (error->type != OFONO_ERROR_TYPE_NO_ERROR)
- return;
+ goto done;
- sim_set_locked_pin(data, OFONO_SIM_PASSWORD_SIM_PIN, status);
+ sim_set_locked_pin(data, OFONO_SIM_PASSWORD_PHSIM_PIN, status);
+
+done:
+ sim->driver->query_facility_lock(sim,
+ OFONO_SIM_PASSWORD_PHNET_PIN,
+ sim_query_fac_networklock_cb, sim);
}
void ofono_sim_inserted_notify(struct ofono_sim *sim, ofono_bool_t inserted)
@@ -2526,16 +2543,9 @@ void ofono_sim_inserted_notify(struct ofono_sim *sim, ofono_bool_t inserted)
OFONO_SIM_PASSWORD_PHSIM_PIN,
sim_query_fac_imsilock_cb, sim);
- sim->driver->query_facility_lock(sim,
- OFONO_SIM_PASSWORD_PHNET_PIN,
- sim_query_fac_networklock_cb, sim);
-
- sim->driver->query_facility_lock(sim,
- OFONO_SIM_PASSWORD_SIM_PIN,
- sim_query_fac_pinlock_cb, sim);
+ } else {
+ sim_initialize(sim);
}
-
- sim_initialize(sim);
} else {
sim->pin_type = OFONO_SIM_PASSWORD_NONE;
--
1.9.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-08-06 15:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-06 4:23 [PATCH] sim: query facility during initialization in chain manner Samrat Guha Niyogi
2016-08-06 15:52 ` Denis Kenzior
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.