As the code within pwrdm_set_fpwrst is updating powerstate and logic states according to powerdomain capabilities, it may alter the target fpwrst also. Update the target fpwrst status according to these checks, otherwise rest of the code in this function will malfunction. Signed-off-by: Tero Kristo <t-kristo@xxxxxx> --- arch/arm/mach-omap2/powerdomain.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c index f5786b4..f92a867 100644 --- a/arch/arm/mach-omap2/powerdomain.c +++ b/arch/arm/mach-omap2/powerdomain.c @@ -711,6 +711,9 @@ int pwrdm_set_fpwrst(struct powerdomain *pwrdm, enum pwrdm_func_state fpwrst) return -EINVAL; } + /* Refresh target fprwst according to what we can reach */ + fpwrst = _pwrdm_pwrst_to_fpwrst(pwrdm, pwrst, logic); + pr_debug("%s: set fpwrst %0x to pwrdm %s\n", __func__, fpwrst, pwrdm->name); -- 1.7.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html