mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-08 23:10:29 +01:00
wwan: set modem to low power state when disabling
When WWAN airplane mode is enabled, set modems to low power state to ensure they are in airplane mode if either (a) the machine does not have an rfkill switch, or (b) the modem is not tied to any rfkill switch (eg, external USB/SDIO/etc).
This commit is contained in:
parent
e7987b9185
commit
837bf2e33a
1 changed files with 27 additions and 1 deletions
|
|
@ -532,6 +532,25 @@ get_user_pass (NMModem *modem,
|
|||
/*****************************************************************************/
|
||||
/* Query/Update enabled state */
|
||||
|
||||
static void
|
||||
set_power_state_low_ready (MMModem *modem,
|
||||
GAsyncResult *result,
|
||||
NMModemBroadband *self)
|
||||
{
|
||||
GError *error = NULL;
|
||||
|
||||
if (!mm_modem_set_power_state_finish (modem, result, &error)) {
|
||||
/* Log but ignore errors; not all modems support low power state */
|
||||
nm_log_dbg (LOGD_MB, "(%s) failed to set modem low power state: %s",
|
||||
nm_modem_get_uid (NM_MODEM (self)),
|
||||
error && error->message ? error->message : "(unknown)");
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
/* Balance refcount */
|
||||
g_object_unref (self);
|
||||
}
|
||||
|
||||
static void
|
||||
modem_disable_ready (MMModem *modem_iface,
|
||||
GAsyncResult *res,
|
||||
|
|
@ -539,7 +558,14 @@ modem_disable_ready (MMModem *modem_iface,
|
|||
{
|
||||
GError *error = NULL;
|
||||
|
||||
if (!mm_modem_disable_finish (modem_iface, res, &error)) {
|
||||
if (mm_modem_disable_finish (modem_iface, res, &error)) {
|
||||
/* Once disabled, move to low-power mode */
|
||||
mm_modem_set_power_state (modem_iface,
|
||||
MM_MODEM_POWER_STATE_LOW,
|
||||
NULL,
|
||||
(GAsyncReadyCallback) set_power_state_low_ready,
|
||||
g_object_ref (self));
|
||||
} else {
|
||||
nm_log_warn (LOGD_MB, "(%s) failed to disable modem: %s",
|
||||
nm_modem_get_uid (NM_MODEM (self)),
|
||||
error && error->message ? error->message : "(unknown)");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue