diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-07-19 15:58:36 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-08-06 20:07:26 +0200 |
commit | d820ca8f2726da56dfa27318bad65ea62281bbbe (patch) | |
tree | 8572ec0315e6dbfcbd25faaa8c01550bb84826a5 | |
parent | ef217c23b064a9d43e13bcd16aba4bd47d902e33 (diff) |
samsung: use CFUN=4 for power down
-rw-r--r-- | plugins/samsung/mm-broadband-modem-samsung.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/plugins/samsung/mm-broadband-modem-samsung.c b/plugins/samsung/mm-broadband-modem-samsung.c index 99371446..3569d5bf 100644 --- a/plugins/samsung/mm-broadband-modem-samsung.c +++ b/plugins/samsung/mm-broadband-modem-samsung.c @@ -461,6 +461,32 @@ load_unlock_retries (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); +} + +/*****************************************************************************/ /* Setup/Cleanup unsolicited events (3GPP interface) */ static gboolean @@ -733,6 +759,8 @@ iface_modem_init (MMIfaceModem *iface) iface->set_bands_finish = set_bands_finish; iface->load_unlock_retries = load_unlock_retries; iface->load_unlock_retries_finish = load_unlock_retries_finish; + iface->modem_power_down = modem_power_down; + iface->modem_power_down_finish = modem_power_down_finish; /* Use default Icera implementation */ iface->load_allowed_modes = mm_iface_icera_modem_load_allowed_modes; |