mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 01:46:51 +07:00
mmc: sdhci-pci: Stop calling sdhci_enable_irq_wakeups()
sdhci_enable_irq_wakeups() is already called by sdhci_suspend_host() so sdhci-pci should not need to call it. However sdhci_suspend_host() only calls it if wakeups are enabled, and sdhci-pci does not enable them until after calling sdhci_suspend_host(). So move the calls to sdhci_pci_init_wakeup() before calling sdhci_suspend_host(), and stop calling sdhci_enable_irq_wakeups(). That results in some simplification because sdhci_pci_suspend_host() and __sdhci_pci_suspend_host() no longer need to be separate functions. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
84362d79f4
commit
5c3c6126b6
@ -38,38 +38,6 @@
|
|||||||
static void sdhci_pci_hw_reset(struct sdhci_host *host);
|
static void sdhci_pci_hw_reset(struct sdhci_host *host);
|
||||||
|
|
||||||
#ifdef CONFIG_PM_SLEEP
|
#ifdef CONFIG_PM_SLEEP
|
||||||
static int __sdhci_pci_suspend_host(struct sdhci_pci_chip *chip)
|
|
||||||
{
|
|
||||||
int i, ret;
|
|
||||||
|
|
||||||
for (i = 0; i < chip->num_slots; i++) {
|
|
||||||
struct sdhci_pci_slot *slot = chip->slots[i];
|
|
||||||
struct sdhci_host *host;
|
|
||||||
|
|
||||||
if (!slot)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
host = slot->host;
|
|
||||||
|
|
||||||
if (chip->pm_retune && host->tuning_mode != SDHCI_TUNING_MODE_3)
|
|
||||||
mmc_retune_needed(host->mmc);
|
|
||||||
|
|
||||||
ret = sdhci_suspend_host(host);
|
|
||||||
if (ret)
|
|
||||||
goto err_pci_suspend;
|
|
||||||
|
|
||||||
if (host->mmc->pm_flags & MMC_PM_WAKE_SDIO_IRQ)
|
|
||||||
sdhci_enable_irq_wakeups(host);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
err_pci_suspend:
|
|
||||||
while (--i >= 0)
|
|
||||||
sdhci_resume_host(chip->slots[i]->host);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int sdhci_pci_init_wakeup(struct sdhci_pci_chip *chip)
|
static int sdhci_pci_init_wakeup(struct sdhci_pci_chip *chip)
|
||||||
{
|
{
|
||||||
mmc_pm_flag_t pm_flags = 0;
|
mmc_pm_flag_t pm_flags = 0;
|
||||||
@ -89,15 +57,33 @@ static int sdhci_pci_init_wakeup(struct sdhci_pci_chip *chip)
|
|||||||
|
|
||||||
static int sdhci_pci_suspend_host(struct sdhci_pci_chip *chip)
|
static int sdhci_pci_suspend_host(struct sdhci_pci_chip *chip)
|
||||||
{
|
{
|
||||||
int ret;
|
int i, ret;
|
||||||
|
|
||||||
ret = __sdhci_pci_suspend_host(chip);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
sdhci_pci_init_wakeup(chip);
|
sdhci_pci_init_wakeup(chip);
|
||||||
|
|
||||||
|
for (i = 0; i < chip->num_slots; i++) {
|
||||||
|
struct sdhci_pci_slot *slot = chip->slots[i];
|
||||||
|
struct sdhci_host *host;
|
||||||
|
|
||||||
|
if (!slot)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
host = slot->host;
|
||||||
|
|
||||||
|
if (chip->pm_retune && host->tuning_mode != SDHCI_TUNING_MODE_3)
|
||||||
|
mmc_retune_needed(host->mmc);
|
||||||
|
|
||||||
|
ret = sdhci_suspend_host(host);
|
||||||
|
if (ret)
|
||||||
|
goto err_pci_suspend;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
err_pci_suspend:
|
||||||
|
while (--i >= 0)
|
||||||
|
sdhci_resume_host(chip->slots[i]->host);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sdhci_pci_resume_host(struct sdhci_pci_chip *chip)
|
int sdhci_pci_resume_host(struct sdhci_pci_chip *chip)
|
||||||
@ -1109,7 +1095,7 @@ static int jmicron_suspend(struct sdhci_pci_chip *chip)
|
|||||||
{
|
{
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
|
||||||
ret = __sdhci_pci_suspend_host(chip);
|
ret = sdhci_pci_suspend_host(chip);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@ -1119,8 +1105,6 @@ static int jmicron_suspend(struct sdhci_pci_chip *chip)
|
|||||||
jmicron_enable_mmc(chip->slots[i]->host, 0);
|
jmicron_enable_mmc(chip->slots[i]->host, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
sdhci_pci_init_wakeup(chip);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user