mmc: core: disable clock scaling before system suspend
This change disables clock scaling in PM notification for "prepare for system suspend". This is needed because devfreq creates a dependency between it and mmc which causes an issue for system suspend. In this change we break this dependency in earlier stage. Change-Id: I86dad94c77607b4e8f8fa67035323716f5eb197d Signed-off-by: Talel Shenhar <tatias@codeaurora.org>
This commit is contained in:
parent
41eb870d51
commit
c328d924ab
1 changed files with 4 additions and 2 deletions
|
@ -289,7 +289,8 @@ bool mmc_can_scale_clk(struct mmc_host *host)
|
|||
return false;
|
||||
}
|
||||
|
||||
return host->caps2 & MMC_CAP2_CLK_SCALE;
|
||||
return (host->caps2 & MMC_CAP2_CLK_SCALE) &&
|
||||
(!(host->pm_flags & MMC_PM_IGNORE_PM_NOTIFY));
|
||||
}
|
||||
EXPORT_SYMBOL(mmc_can_scale_clk);
|
||||
|
||||
|
@ -747,7 +748,7 @@ int mmc_exit_clk_scaling(struct mmc_host *host)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (!mmc_can_scale_clk(host))
|
||||
if (!mmc_can_scale_clk(host) || !host->clk_scaling.enable)
|
||||
return 0;
|
||||
|
||||
if (!host->clk_scaling.devfreq) {
|
||||
|
@ -4155,6 +4156,7 @@ int mmc_pm_notify(struct notifier_block *notify_block,
|
|||
spin_unlock_irqrestore(&host->lock, flags);
|
||||
cancel_delayed_work_sync(&host->detect);
|
||||
|
||||
mmc_disable_clk_scaling(host);
|
||||
if (!host->bus_ops)
|
||||
break;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue