msm: board-7x30: Add support to use new SDIO LPM APIs
Allow usage of LPM APIs published by SDIO_AL layer by setting
->is_sdio_al_client = 1 for SDC2 slot in svlte targets.
Change-Id: I2d0e42d216dcadc35a33a2ee15ff2ee418802c45
Signed-off-by: Sujith Reddy Thumma <sthumma@codeaurora.org>
diff --git a/drivers/mmc/host/msm_sdcc.c b/drivers/mmc/host/msm_sdcc.c
index 0bb8ac7..e639815 100644
--- a/drivers/mmc/host/msm_sdcc.c
+++ b/drivers/mmc/host/msm_sdcc.c
@@ -3527,9 +3527,10 @@
if (pdev->id < 1 || pdev->id > 5)
return -EINVAL;
- if (plat->is_sdio_al_client)
- if (!plat->sdio_lpm_gpio_setup || !plat->sdiowakeup_irq)
- return -EINVAL;
+ if (plat->is_sdio_al_client && !plat->sdiowakeup_irq) {
+ pr_err("%s: No wakeup IRQ for sdio_al client\n", __func__);
+ return -EINVAL;
+ }
if (pdev->resource == NULL || pdev->num_resources < 2) {
pr_err("%s: Invalid resource\n", __func__);
@@ -4099,7 +4100,8 @@
host->clks_on = 0;
}
- if (!host->sdio_gpio_lpm) {
+ if (host->plat->sdio_lpm_gpio_setup &&
+ !host->sdio_gpio_lpm) {
spin_unlock_irqrestore(&host->lock, flags);
host->plat->sdio_lpm_gpio_setup(mmc_dev(mmc), 0);
spin_lock_irqsave(&host->lock, flags);
@@ -4118,7 +4120,8 @@
msmsdcc_disable_irq_wake(host);
}
- if (host->sdio_gpio_lpm) {
+ if (host->plat->sdio_lpm_gpio_setup &&
+ host->sdio_gpio_lpm) {
spin_unlock_irqrestore(&host->lock, flags);
host->plat->sdio_lpm_gpio_setup(mmc_dev(mmc), 1);
spin_lock_irqsave(&host->lock, flags);