Make genpd to take the wakeup_path_in_band status flag into account during system suspend/resume. More precisely, in case the flag has been set by the PM core, let's leave the device in full power state and prevent the PM domain from being powered off. Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> --- Changes in v2: - Added Geert's Reviewed-by tag. - Changed to look at status flag instead of driver flag. --- drivers/base/power/domain.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index 24e39ce..21cbea0 100644 --- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c @@ -1037,7 +1037,8 @@ static int genpd_finish_suspend(struct device *dev, bool poweroff) if (IS_ERR(genpd)) return -EINVAL; - if (dev->power.wakeup_path && genpd_is_active_wakeup(genpd)) + if (dev->power.wakeup_path && + (dev->power.wakeup_path_in_band || genpd_is_active_wakeup(genpd))) return 0; if (poweroff) @@ -1092,7 +1093,8 @@ static int genpd_resume_noirq(struct device *dev) if (IS_ERR(genpd)) return -EINVAL; - if (dev->power.wakeup_path && genpd_is_active_wakeup(genpd)) + if (dev->power.wakeup_path && + (dev->power.wakeup_path_in_band || genpd_is_active_wakeup(genpd))) return 0; genpd_lock(genpd); -- 2.7.4