diff options
author | Neil Patel <neilp@nvidia.com> | 2013-10-25 10:29:39 -0400 |
---|---|---|
committer | Martin Chi <mchi@nvidia.com> | 2014-01-04 03:41:00 -0800 |
commit | 397a0af0d114bb4002bb6dc9dbc745419aa12977 (patch) | |
tree | 1b2cf4c849fde965e528c8eeea43402bd9b092d3 /drivers | |
parent | 845e7b37b89454d7a815111d12773ed60267a452 (diff) |
misc: tegra-baseband: short autosuspend for native remote wake
Add support for short autosuspend when native remote wakeup is used.
Bug 1362837
Bug 1430974
Change-Id: I13cab913645d00a1d37caabf0d274bb2e557e0c3
Signed-off-by: Neil Patel <neilp@nvidia.com>
Reviewed-on: http://git-master/r/324075
(cherry picked from commit c3d9eaafe053f5d8f8859811e01e3a0dac314ba3)
Reviewed-on: http://git-master/r/328441
GVS: Gerrit_Virtual_Submit
Reviewed-by: Steve Lin <stlin@nvidia.com>
Reviewed-on: http://git-master/r/349730
Reviewed-by: Martin Chi <mchi@nvidia.com>
Tested-by: Martin Chi <mchi@nvidia.com>
Reviewed-on: http://git-master/r/351587
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/misc/tegra-baseband/tegra_usb_modem_power.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/misc/tegra-baseband/tegra_usb_modem_power.c b/drivers/misc/tegra-baseband/tegra_usb_modem_power.c index 28f5202aa082..277cc56c8e64 100644 --- a/drivers/misc/tegra-baseband/tegra_usb_modem_power.c +++ b/drivers/misc/tegra-baseband/tegra_usb_modem_power.c @@ -391,7 +391,6 @@ static int mdm_pm_notifier(struct notifier_block *notifier, modem->system_suspend = 1; #ifdef CONFIG_PM if (modem->capability & TEGRA_MODEM_AUTOSUSPEND && - modem->wake_irq && modem->udev && modem->udev->state != USB_STATE_NOTATTACHED) { pm_runtime_set_autosuspend_delay(&modem->udev->dev, @@ -456,6 +455,16 @@ static void tegra_usb_modem_post_remote_wakeup(void) modem = dev_get_drvdata(dev); mutex_lock(&modem->lock); +#ifdef CONFIG_PM + if (modem->capability & TEGRA_MODEM_AUTOSUSPEND && + modem->udev && + modem->udev->state != USB_STATE_NOTATTACHED && + modem->short_autosuspend_enabled) { + pm_runtime_set_autosuspend_delay(&modem->udev->dev, + modem->pdata->autosuspend_delay); + modem->short_autosuspend_enabled = 0; + } +#endif wake_lock_timeout(&modem->wake_lock, WAKELOCK_TIMEOUT_FOR_REMOTE_WAKE); mutex_unlock(&modem->lock); |