summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSahitya Tummala <stummala@codeaurora.org>2016-01-12 16:40:50 +0530
committerSubhash Jadavani <subhashj@codeaurora.org>2016-05-31 15:28:09 -0700
commite78c71343571f0d59d3577226440388782cd890b (patch)
tree591f99d0d28a845631d42444051a972459d74623
parent9726132b51fd877e2fcf571bc9d7f3b7e873e63b (diff)
mmc: sdhci-msm: Set sdio_pending_processing default state to false
It seems that when we are configuring sdiowakeup_irq, we are receiving a spurious interrupt which sets sdio_pending_processing state to true. Now, if the sdio card is physically connected but wifi not enabled in that case suspend functionality will be broken sdhci_msm_suspend_noirq will return -EBUSY if sdio_pending_processing is set to true. Thus fix it by setting this flag to false after we have disabled sdiowakeup_irq. CRs-Fixed: 957968 Change-Id: I755b0b5602345ad6bf557c6055b9057012de0797 Signed-off-by: Ritesh Harjani <riteshh@codeaurora.org> Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
-rw-r--r--drivers/mmc/host/sdhci-msm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index bb48eb666be5..7f4d22276194 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -2,7 +2,7 @@
* drivers/mmc/host/sdhci-msm.c - Qualcomm Technologies, Inc. MSM SDHCI Platform
* driver source file
*
- * Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -4288,6 +4288,7 @@ static int sdhci_msm_probe(struct platform_device *pdev)
} else {
spin_lock_irqsave(&host->lock, flags);
sdhci_msm_cfg_sdiowakeup_gpio_irq(host, false);
+ msm_host->sdio_pending_processing = false;
spin_unlock_irqrestore(&host->lock, flags);
}
}
@@ -4421,6 +4422,7 @@ static int sdhci_msm_cfg_sdio_wakeup(struct sdhci_host *host, bool enable)
if (!(host->mmc->card && mmc_card_sdio(host->mmc->card) &&
sdhci_is_valid_gpio_wakeup_int(msm_host) &&
mmc_card_wake_sdio_irq(host->mmc))) {
+ msm_host->sdio_pending_processing = false;
return 1;
}