Commit fd8cf827 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Simon Horman

ARM: shmobile: pm-rmobile: Use GENPD_FLAG_ALWAYS_ON

Improve handling of always-on PM domains by using the
GENPD_FLAG_ALWAYS_ON flag introduced in commit ffaa42e8 ("PM /
Domains: Enable users of genpd to specify always on PM domains").

Note that the PM domain containing the serial console is still handled
locally.
Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
parent 2ea659a9
...@@ -130,7 +130,7 @@ static void rmobile_init_pm_domain(struct rmobile_pm_domain *rmobile_pd) ...@@ -130,7 +130,7 @@ static void rmobile_init_pm_domain(struct rmobile_pm_domain *rmobile_pd)
struct generic_pm_domain *genpd = &rmobile_pd->genpd; struct generic_pm_domain *genpd = &rmobile_pd->genpd;
struct dev_power_governor *gov = rmobile_pd->gov; struct dev_power_governor *gov = rmobile_pd->gov;
genpd->flags = GENPD_FLAG_PM_CLK; genpd->flags |= GENPD_FLAG_PM_CLK;
genpd->dev_ops.active_wakeup = rmobile_pd_active_wakeup; genpd->dev_ops.active_wakeup = rmobile_pd_active_wakeup;
genpd->power_off = rmobile_pd_power_down; genpd->power_off = rmobile_pd_power_down;
genpd->power_on = rmobile_pd_power_up; genpd->power_on = rmobile_pd_power_up;
...@@ -140,14 +140,6 @@ static void rmobile_init_pm_domain(struct rmobile_pm_domain *rmobile_pd) ...@@ -140,14 +140,6 @@ static void rmobile_init_pm_domain(struct rmobile_pm_domain *rmobile_pd)
pm_genpd_init(genpd, gov ? : &simple_qos_governor, false); pm_genpd_init(genpd, gov ? : &simple_qos_governor, false);
} }
static int rmobile_pd_suspend_busy(void)
{
/*
* This domain should not be turned off.
*/
return -EBUSY;
}
static int rmobile_pd_suspend_console(void) static int rmobile_pd_suspend_console(void)
{ {
/* /*
...@@ -260,8 +252,7 @@ static void __init rmobile_setup_pm_domain(struct device_node *np, ...@@ -260,8 +252,7 @@ static void __init rmobile_setup_pm_domain(struct device_node *np,
* only be turned off if the CPU is not in use. * only be turned off if the CPU is not in use.
*/ */
pr_debug("PM domain %s contains CPU\n", name); pr_debug("PM domain %s contains CPU\n", name);
pd->gov = &pm_domain_always_on_gov; pd->genpd.flags |= GENPD_FLAG_ALWAYS_ON;
pd->suspend = rmobile_pd_suspend_busy;
break; break;
case PD_CONSOLE: case PD_CONSOLE:
...@@ -277,8 +268,7 @@ static void __init rmobile_setup_pm_domain(struct device_node *np, ...@@ -277,8 +268,7 @@ static void __init rmobile_setup_pm_domain(struct device_node *np,
* is not in use. * is not in use.
*/ */
pr_debug("PM domain %s contains Coresight-ETM\n", name); pr_debug("PM domain %s contains Coresight-ETM\n", name);
pd->gov = &pm_domain_always_on_gov; pd->genpd.flags |= GENPD_FLAG_ALWAYS_ON;
pd->suspend = rmobile_pd_suspend_busy;
break; break;
case PD_MEMCTL: case PD_MEMCTL:
...@@ -287,8 +277,7 @@ static void __init rmobile_setup_pm_domain(struct device_node *np, ...@@ -287,8 +277,7 @@ static void __init rmobile_setup_pm_domain(struct device_node *np,
* should only be turned off if memory is not in use. * should only be turned off if memory is not in use.
*/ */
pr_debug("PM domain %s contains MEMCTL\n", name); pr_debug("PM domain %s contains MEMCTL\n", name);
pd->gov = &pm_domain_always_on_gov; pd->genpd.flags |= GENPD_FLAG_ALWAYS_ON;
pd->suspend = rmobile_pd_suspend_busy;
break; break;
case PD_NORMAL: case PD_NORMAL:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment