aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Chan <benchan@chromium.org>2013-08-09 20:56:52 -0700
committerAleksander Morgado <aleksander@lanedo.com>2013-08-12 08:57:43 +0200
commita82acb34ec7ca3d276263a6f286b586ac23d3856 (patch)
tree28ba9f76899996223ddd9b725ae7c205a10e02d9
parent1d3ec932d56355e2a84956c3d543969bea8ebd6f (diff)
huawei: implement modem reset
-rw-r--r--plugins/huawei/mm-broadband-modem-huawei.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/plugins/huawei/mm-broadband-modem-huawei.c b/plugins/huawei/mm-broadband-modem-huawei.c
index 367ab3db..c34acc29 100644
--- a/plugins/huawei/mm-broadband-modem-huawei.c
+++ b/plugins/huawei/mm-broadband-modem-huawei.c
@@ -422,6 +422,30 @@ sysinfo (MMBroadbandModemHuawei *self,
}
/*****************************************************************************/
+/* Reset (Modem interface) */
+
+static gboolean
+reset_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ return !!mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error);
+}
+
+static void
+reset (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "^RESET",
+ 3,
+ FALSE,
+ callback,
+ user_data);
+}
+
+/*****************************************************************************/
/* Load access technologies (Modem interface) */
static MMModemAccessTechnology
@@ -2951,6 +2975,8 @@ iface_modem_init (MMIfaceModem *iface)
{
iface_modem_parent = g_type_interface_peek_parent (iface);
+ iface->reset = reset;
+ iface->reset_finish = reset_finish;
iface->load_access_technologies = load_access_technologies;
iface->load_access_technologies_finish = load_access_technologies_finish;
iface->load_unlock_retries = load_unlock_retries;