diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/sdio.c')
-rw-r--r-- | drivers/net/wireless/ath/ath6kl/sdio.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c index 07dcf00ca1a..4febee72349 100644 --- a/drivers/net/wireless/ath/ath6kl/sdio.c +++ b/drivers/net/wireless/ath/ath6kl/sdio.c | |||
@@ -856,6 +856,19 @@ static int ath6kl_sdio_suspend(struct ath6kl *ar, struct cfg80211_wowlan *wow) | |||
856 | if (ret) | 856 | if (ret) |
857 | goto cut_pwr; | 857 | goto cut_pwr; |
858 | 858 | ||
859 | /* | ||
860 | * Workaround to support Deep Sleep with MSM, set the host pm | ||
861 | * flag as MMC_PM_WAKE_SDIO_IRQ to allow SDCC deiver to disable | ||
862 | * the sdc2_clock and internally allows MSM to enter | ||
863 | * TCXO shutdown properly. | ||
864 | */ | ||
865 | if ((flags & MMC_PM_WAKE_SDIO_IRQ)) { | ||
866 | ret = sdio_set_host_pm_flags(func, | ||
867 | MMC_PM_WAKE_SDIO_IRQ); | ||
868 | if (ret) | ||
869 | goto cut_pwr; | ||
870 | } | ||
871 | |||
859 | ret = ath6kl_cfg80211_suspend(ar, ATH6KL_CFG_SUSPEND_DEEPSLEEP, | 872 | ret = ath6kl_cfg80211_suspend(ar, ATH6KL_CFG_SUSPEND_DEEPSLEEP, |
860 | NULL); | 873 | NULL); |
861 | if (ret) | 874 | if (ret) |