aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/power/domain.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base/power/domain.c')
-rw-r--r--drivers/base/power/domain.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index 96b71b6536d6..acc3a8ded29d 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -470,10 +470,19 @@ static int pm_genpd_poweroff(struct generic_pm_domain *genpd)
470 return -EBUSY; 470 return -EBUSY;
471 471
472 not_suspended = 0; 472 not_suspended = 0;
473 list_for_each_entry(pdd, &genpd->dev_list, list_node) 473 list_for_each_entry(pdd, &genpd->dev_list, list_node) {
474 enum pm_qos_flags_status stat;
475
476 stat = dev_pm_qos_flags(pdd->dev,
477 PM_QOS_FLAG_NO_POWER_OFF
478 | PM_QOS_FLAG_REMOTE_WAKEUP);
479 if (stat > PM_QOS_FLAGS_NONE)
480 return -EBUSY;
481
474 if (pdd->dev->driver && (!pm_runtime_suspended(pdd->dev) 482 if (pdd->dev->driver && (!pm_runtime_suspended(pdd->dev)
475 || pdd->dev->power.irq_safe)) 483 || pdd->dev->power.irq_safe))
476 not_suspended++; 484 not_suspended++;
485 }
477 486
478 if (not_suspended > genpd->in_progress) 487 if (not_suspended > genpd->in_progress)
479 return -EBUSY; 488 return -EBUSY;