summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorNeil Patel <neilp@nvidia.com>2013-10-25 10:29:39 -0400
committerMartin Chi <mchi@nvidia.com>2014-01-04 03:41:00 -0800
commit397a0af0d114bb4002bb6dc9dbc745419aa12977 (patch)
tree1b2cf4c849fde965e528c8eeea43402bd9b092d3 /drivers
parent845e7b37b89454d7a815111d12773ed60267a452 (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.c11
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);