aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-07-23 11:06:25 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-08-06 20:07:50 +0200
commit4d5892204d9f28b65a9f1a8495c036c7448791bc (patch)
tree16ff35c4ac5a2d362798708857be0008b5570f0a
parentf6415a71b6ee3998b144393c3c4facdb7a77c545 (diff)
zte: use +CFUN=4 for powering down
Icera-based ZTE already has the same functionality coming from the parent `MMBroadbandModemIcera' modem object.
-rw-r--r--plugins/zte/mm-broadband-modem-zte.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/plugins/zte/mm-broadband-modem-zte.c b/plugins/zte/mm-broadband-modem-zte.c
index 5312ea19..1d9e396e 100644
--- a/plugins/zte/mm-broadband-modem-zte.c
+++ b/plugins/zte/mm-broadband-modem-zte.c
@@ -150,6 +150,32 @@ modem_after_sim_unlock (MMIfaceModem *self,
}
/*****************************************************************************/
+/* Modem power down (Modem interface) */
+
+static gboolean
+modem_power_down_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !!mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error);
+}
+
+static void
+modem_power_down (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ /* Use AT+CFUN=4 for power down. It will stop the RF (IMSI detach), and
+ * keeps access to the SIM */
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "+CFUN=4",
+ 3,
+ FALSE,
+ callback,
+ user_data);
+}
+
+/*****************************************************************************/
/* Load initial allowed/preferred modes (Modem interface) */
static gboolean
@@ -542,6 +568,8 @@ iface_modem_init (MMIfaceModem *iface)
{
iface->modem_after_sim_unlock = modem_after_sim_unlock;
iface->modem_after_sim_unlock_finish = modem_after_sim_unlock_finish;
+ iface->modem_power_down = modem_power_down;
+ iface->modem_power_down_finish = modem_power_down_finish;
iface->load_access_technologies = load_access_technologies;
iface->load_access_technologies_finish = load_access_technologies_finish;
iface->load_allowed_modes = load_allowed_modes;