PM / Domains: Operations related to cpuidle using domain names
Make it possible to use domain names in operations connecting cpuidle to and disconnecting it from a PM domain. This is useful on platforms where PM domain objects are organized in such a way that the names of the domains are easier to use than the addresses of those objects. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
This commit is contained in:
parent
40114447a7
commit
74a2799ab5
|
@ -1887,6 +1887,16 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
|
|||
goto out;
|
||||
}
|
||||
|
||||
/**
|
||||
* pm_genpd_name_attach_cpuidle - Find PM domain and connect cpuidle to it.
|
||||
* @name: Name of the domain to connect to cpuidle.
|
||||
* @state: cpuidle state this domain can manipulate.
|
||||
*/
|
||||
int pm_genpd_name_attach_cpuidle(const char *name, int state)
|
||||
{
|
||||
return pm_genpd_attach_cpuidle(pm_genpd_lookup_name(name), state);
|
||||
}
|
||||
|
||||
/**
|
||||
* pm_genpd_detach_cpuidle - Remove the cpuidle connection from a PM domain.
|
||||
* @genpd: PM domain to remove the cpuidle connection from.
|
||||
|
@ -1925,6 +1935,15 @@ int pm_genpd_detach_cpuidle(struct generic_pm_domain *genpd)
|
|||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* pm_genpd_name_detach_cpuidle - Find PM domain and disconnect cpuidle from it.
|
||||
* @name: Name of the domain to disconnect cpuidle from.
|
||||
*/
|
||||
int pm_genpd_name_detach_cpuidle(const char *name)
|
||||
{
|
||||
return pm_genpd_detach_cpuidle(pm_genpd_lookup_name(name));
|
||||
}
|
||||
|
||||
/* Default device callbacks for generic PM domains. */
|
||||
|
||||
/**
|
||||
|
|
|
@ -156,7 +156,9 @@ extern int pm_genpd_add_callbacks(struct device *dev,
|
|||
struct gpd_timing_data *td);
|
||||
extern int __pm_genpd_remove_callbacks(struct device *dev, bool clear_td);
|
||||
extern int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state);
|
||||
extern int pm_genpd_name_attach_cpuidle(const char *name, int state);
|
||||
extern int pm_genpd_detach_cpuidle(struct generic_pm_domain *genpd);
|
||||
extern int pm_genpd_name_detach_cpuidle(const char *name);
|
||||
extern void pm_genpd_init(struct generic_pm_domain *genpd,
|
||||
struct dev_power_governor *gov, bool is_off);
|
||||
|
||||
|
@ -229,10 +231,18 @@ static inline int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int s
|
|||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
static inline int pm_genpd_name_attach_cpuidle(const char *name, int state)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
static inline int pm_genpd_detach_cpuidle(struct generic_pm_domain *genpd)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
static inline int pm_genpd_name_detach_cpuidle(const char *name)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
static inline void pm_genpd_init(struct generic_pm_domain *genpd,
|
||||
struct dev_power_governor *gov, bool is_off)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue