mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-25 21:54:06 +08:00
PM / Domains: Rename is_async to one_dev_on for genpd_power_off()
The parameter name is_async, for genpd_power_off() gives a poor description of its purpose. To clarify, let's rename it to one_dev_on and update the documentation of it in the function header. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
1f8728b7ad
commit
3c64649d1c
@ -276,12 +276,15 @@ static void genpd_queue_power_off_work(struct generic_pm_domain *genpd)
|
|||||||
/**
|
/**
|
||||||
* genpd_power_off - Remove power from a given PM domain.
|
* genpd_power_off - Remove power from a given PM domain.
|
||||||
* @genpd: PM domain to power down.
|
* @genpd: PM domain to power down.
|
||||||
* @is_async: PM domain is powered down from a scheduled work
|
* @one_dev_on: If invoked from genpd's ->runtime_suspend|resume() callback, the
|
||||||
|
* RPM status of the releated device is in an intermediate state, not yet turned
|
||||||
|
* into RPM_SUSPENDED. This means genpd_power_off() must allow one device to not
|
||||||
|
* be RPM_SUSPENDED, while it tries to power off the PM domain.
|
||||||
*
|
*
|
||||||
* If all of the @genpd's devices have been suspended and all of its subdomains
|
* If all of the @genpd's devices have been suspended and all of its subdomains
|
||||||
* have been powered down, remove power from @genpd.
|
* have been powered down, remove power from @genpd.
|
||||||
*/
|
*/
|
||||||
static int genpd_power_off(struct generic_pm_domain *genpd, bool is_async)
|
static int genpd_power_off(struct generic_pm_domain *genpd, bool one_dev_on)
|
||||||
{
|
{
|
||||||
struct pm_domain_data *pdd;
|
struct pm_domain_data *pdd;
|
||||||
struct gpd_link *link;
|
struct gpd_link *link;
|
||||||
@ -317,7 +320,7 @@ static int genpd_power_off(struct generic_pm_domain *genpd, bool is_async)
|
|||||||
not_suspended++;
|
not_suspended++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not_suspended > 1 || (not_suspended == 1 && is_async))
|
if (not_suspended > 1 || (not_suspended == 1 && !one_dev_on))
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
|
||||||
if (genpd->gov && genpd->gov->power_down_ok) {
|
if (genpd->gov && genpd->gov->power_down_ok) {
|
||||||
@ -459,7 +462,7 @@ static void genpd_power_off_work_fn(struct work_struct *work)
|
|||||||
genpd = container_of(work, struct generic_pm_domain, power_off_work);
|
genpd = container_of(work, struct generic_pm_domain, power_off_work);
|
||||||
|
|
||||||
genpd_lock(genpd);
|
genpd_lock(genpd);
|
||||||
genpd_power_off(genpd, true);
|
genpd_power_off(genpd, false);
|
||||||
genpd_unlock(genpd);
|
genpd_unlock(genpd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -578,7 +581,7 @@ static int genpd_runtime_suspend(struct device *dev)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
genpd_lock(genpd);
|
genpd_lock(genpd);
|
||||||
genpd_power_off(genpd, false);
|
genpd_power_off(genpd, true);
|
||||||
genpd_unlock(genpd);
|
genpd_unlock(genpd);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -658,7 +661,7 @@ err_poweroff:
|
|||||||
if (!pm_runtime_is_irq_safe(dev) ||
|
if (!pm_runtime_is_irq_safe(dev) ||
|
||||||
(pm_runtime_is_irq_safe(dev) && genpd_is_irq_safe(genpd))) {
|
(pm_runtime_is_irq_safe(dev) && genpd_is_irq_safe(genpd))) {
|
||||||
genpd_lock(genpd);
|
genpd_lock(genpd);
|
||||||
genpd_power_off(genpd, 0);
|
genpd_power_off(genpd, true);
|
||||||
genpd_unlock(genpd);
|
genpd_unlock(genpd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user