mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
clk: qcom: lahaina: Fix providers left active in suspend
The PM framework prevents runtime_suspend() callbacks after device_prepare() is called by calling pm_runtime_get_noresume(), which increments the usage_count. If consumers don't disable their clocks until after device_prepare(), then the clock provider will remain active since usage_count=1. This results in regulator votes persisting after suspend, which blocks system low power modes. Register for the standard pm_runtime_force_suspend() and pm_runtime_force_resume() callbacks, which force the device into suspend even if usage_count=1. Register them in suspend_late, since consumer clock votes will be removed earlier in suspend. Change-Id: I73d46bdcc1664239001b7a38ed4aeadba75e57a7 Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
This commit is contained in:
parent
4b196d63cf
commit
5a585e4703
3 changed files with 6 additions and 0 deletions
|
|
@ -3049,6 +3049,8 @@ static void cam_cc_lahaina_sync_state(struct device *dev)
|
|||
|
||||
static const struct dev_pm_ops cam_cc_lahaina_pm_ops = {
|
||||
SET_RUNTIME_PM_OPS(qcom_cc_runtime_suspend, qcom_cc_runtime_resume, NULL)
|
||||
SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
};
|
||||
|
||||
static struct platform_driver cam_cc_lahaina_driver = {
|
||||
|
|
|
|||
|
|
@ -1567,6 +1567,8 @@ static void disp_cc_lahaina_sync_state(struct device *dev)
|
|||
|
||||
static const struct dev_pm_ops disp_cc_lahaina_pm_ops = {
|
||||
SET_RUNTIME_PM_OPS(qcom_cc_runtime_suspend, qcom_cc_runtime_resume, NULL)
|
||||
SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
};
|
||||
|
||||
static struct platform_driver disp_cc_lahaina_driver = {
|
||||
|
|
|
|||
|
|
@ -579,6 +579,8 @@ static void video_cc_lahaina_sync_state(struct device *dev)
|
|||
|
||||
static const struct dev_pm_ops video_cc_lahaina_pm_ops = {
|
||||
SET_RUNTIME_PM_OPS(qcom_cc_runtime_suspend, qcom_cc_runtime_resume, NULL)
|
||||
SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
};
|
||||
|
||||
static struct platform_driver video_cc_lahaina_driver = {
|
||||
|
|
|
|||
Loading…
Reference in a new issue