Merge "mmc: sdhci-msm: Dont wait infinitely for pwr_irq interrupt"

This commit is contained in:
Linux Build Service Account 2017-02-21 05:33:14 -08:00 committed by Gerrit - the friendly Code Review server
commit 82ab22b4ae

View file

@ -310,6 +310,9 @@ void sdhci_msm_writel_relaxed(u32 val, struct sdhci_host *host, u32 offset)
writel_relaxed(val, base_addr + offset);
}
/* Timeout value to avoid infinite waiting for pwr_irq */
#define MSM_PWR_IRQ_TIMEOUT_MS 5000
static const u32 tuning_block_64[] = {
0x00FF0FFF, 0xCCC3CCFF, 0xFFCC3CC3, 0xEFFEFFFE,
0xDDFFDFFF, 0xFBFFFBFF, 0xFF7FFFBF, 0xEFBDF777,
@ -2779,8 +2782,10 @@ static void sdhci_msm_check_power_status(struct sdhci_host *host, u32 req_type)
*/
if (done)
init_completion(&msm_host->pwr_irq_completion);
else
wait_for_completion(&msm_host->pwr_irq_completion);
else if (!wait_for_completion_timeout(&msm_host->pwr_irq_completion,
msecs_to_jiffies(MSM_PWR_IRQ_TIMEOUT_MS)))
__WARN_printf("%s: request(%d) timed out waiting for pwr_irq\n",
mmc_hostname(host->mmc), req_type);
pr_debug("%s: %s: request %d done\n", mmc_hostname(host->mmc),
__func__, req_type);