|
@@ -856,6 +856,19 @@ static int ath6kl_sdio_suspend(struct ath6kl *ar, struct cfg80211_wowlan *wow)
|
|
|
if (ret)
|
|
|
goto cut_pwr;
|
|
|
|
|
|
+ /*
|
|
|
+ * Workaround to support Deep Sleep with MSM, set the host pm
|
|
|
+ * flag as MMC_PM_WAKE_SDIO_IRQ to allow SDCC deiver to disable
|
|
|
+ * the sdc2_clock and internally allows MSM to enter
|
|
|
+ * TCXO shutdown properly.
|
|
|
+ */
|
|
|
+ if ((flags & MMC_PM_WAKE_SDIO_IRQ)) {
|
|
|
+ ret = sdio_set_host_pm_flags(func,
|
|
|
+ MMC_PM_WAKE_SDIO_IRQ);
|
|
|
+ if (ret)
|
|
|
+ goto cut_pwr;
|
|
|
+ }
|
|
|
+
|
|
|
ret = ath6kl_cfg80211_suspend(ar, ATH6KL_CFG_SUSPEND_DEEPSLEEP,
|
|
|
NULL);
|
|
|
if (ret)
|