Commit d30d819d authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

PM: Drop CONFIG_PM_RUNTIME from the driver core

After commit b2b49ccb (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is
selected) PM_RUNTIME is always set if PM is set, so quite a few
depend on CONFIG_PM or even may be dropped entirely in some cases.

Replace CONFIG_PM_RUNTIME with CONFIG_PM in the PM core code.
Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Acked-by: default avatarKevin Hilman <khilman@linaro.org>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent ef9cc993
...@@ -256,10 +256,6 @@ void pm_clk_destroy(struct device *dev) ...@@ -256,10 +256,6 @@ void pm_clk_destroy(struct device *dev)
} }
} }
#endif /* CONFIG_PM */
#ifdef CONFIG_PM_RUNTIME
/** /**
* pm_clk_suspend - Disable clocks in a device's PM clock list. * pm_clk_suspend - Disable clocks in a device's PM clock list.
* @dev: Device to disable the clocks for. * @dev: Device to disable the clocks for.
...@@ -373,68 +369,7 @@ static int pm_clk_notify(struct notifier_block *nb, ...@@ -373,68 +369,7 @@ static int pm_clk_notify(struct notifier_block *nb,
return 0; return 0;
} }
#else /* !CONFIG_PM_RUNTIME */ #else /* !CONFIG_PM */
#ifdef CONFIG_PM
/**
* pm_clk_suspend - Disable clocks in a device's PM clock list.
* @dev: Device to disable the clocks for.
*/
int pm_clk_suspend(struct device *dev)
{
struct pm_subsys_data *psd = dev_to_psd(dev);
struct pm_clock_entry *ce;
unsigned long flags;
dev_dbg(dev, "%s()\n", __func__);
/* If there is no driver, the clocks are already disabled. */
if (!psd || !dev->driver)
return 0;
spin_lock_irqsave(&psd->lock, flags);
list_for_each_entry_reverse(ce, &psd->clock_list, node) {
if (ce->status < PCE_STATUS_ERROR) {
if (ce->status == PCE_STATUS_ENABLED)
clk_disable(ce->clk);
ce->status = PCE_STATUS_ACQUIRED;
}
}
spin_unlock_irqrestore(&psd->lock, flags);
return 0;
}
/**
* pm_clk_resume - Enable clocks in a device's PM clock list.
* @dev: Device to enable the clocks for.
*/
int pm_clk_resume(struct device *dev)
{
struct pm_subsys_data *psd = dev_to_psd(dev);
struct pm_clock_entry *ce;
unsigned long flags;
dev_dbg(dev, "%s()\n", __func__);
/* If there is no driver, the clocks should remain disabled. */
if (!psd || !dev->driver)
return 0;
spin_lock_irqsave(&psd->lock, flags);
list_for_each_entry(ce, &psd->clock_list, node)
__pm_clk_enable(dev, ce);
spin_unlock_irqrestore(&psd->lock, flags);
return 0;
}
#endif /* CONFIG_PM */
/** /**
* enable_clock - Enable a device clock. * enable_clock - Enable a device clock.
...@@ -514,7 +449,7 @@ static int pm_clk_notify(struct notifier_block *nb, ...@@ -514,7 +449,7 @@ static int pm_clk_notify(struct notifier_block *nb,
return 0; return 0;
} }
#endif /* !CONFIG_PM_RUNTIME */ #endif /* !CONFIG_PM */
/** /**
* pm_clk_add_notifier - Add bus type notifier for power management clocks. * pm_clk_add_notifier - Add bus type notifier for power management clocks.
......
...@@ -280,8 +280,6 @@ int pm_genpd_name_poweron(const char *domain_name) ...@@ -280,8 +280,6 @@ int pm_genpd_name_poweron(const char *domain_name)
return genpd ? pm_genpd_poweron(genpd) : -EINVAL; return genpd ? pm_genpd_poweron(genpd) : -EINVAL;
} }
#ifdef CONFIG_PM_RUNTIME
static int genpd_start_dev_no_timing(struct generic_pm_domain *genpd, static int genpd_start_dev_no_timing(struct generic_pm_domain *genpd,
struct device *dev) struct device *dev)
{ {
...@@ -755,24 +753,6 @@ static int __init genpd_poweroff_unused(void) ...@@ -755,24 +753,6 @@ static int __init genpd_poweroff_unused(void)
} }
late_initcall(genpd_poweroff_unused); late_initcall(genpd_poweroff_unused);
#else
static inline int genpd_dev_pm_qos_notifier(struct notifier_block *nb,
unsigned long val, void *ptr)
{
return NOTIFY_DONE;
}
static inline void
genpd_queue_power_off_work(struct generic_pm_domain *genpd) {}
static inline void genpd_power_off_work_fn(struct work_struct *work) {}
#define pm_genpd_runtime_suspend NULL
#define pm_genpd_runtime_resume NULL
#endif /* CONFIG_PM_RUNTIME */
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
/** /**
...@@ -1364,7 +1344,7 @@ void pm_genpd_syscore_poweron(struct device *dev) ...@@ -1364,7 +1344,7 @@ void pm_genpd_syscore_poweron(struct device *dev)
} }
EXPORT_SYMBOL_GPL(pm_genpd_syscore_poweron); EXPORT_SYMBOL_GPL(pm_genpd_syscore_poweron);
#else #else /* !CONFIG_PM_SLEEP */
#define pm_genpd_prepare NULL #define pm_genpd_prepare NULL
#define pm_genpd_suspend NULL #define pm_genpd_suspend NULL
...@@ -2220,7 +2200,7 @@ int genpd_dev_pm_attach(struct device *dev) ...@@ -2220,7 +2200,7 @@ int genpd_dev_pm_attach(struct device *dev)
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(genpd_dev_pm_attach); EXPORT_SYMBOL_GPL(genpd_dev_pm_attach);
#endif #endif /* CONFIG_PM_GENERIC_DOMAINS_OF */
/*** debugfs support ***/ /*** debugfs support ***/
...@@ -2236,10 +2216,8 @@ static struct dentry *pm_genpd_debugfs_dir; ...@@ -2236,10 +2216,8 @@ static struct dentry *pm_genpd_debugfs_dir;
/* /*
* TODO: This function is a slightly modified version of rtpm_status_show * TODO: This function is a slightly modified version of rtpm_status_show
* from sysfs.c, but dependencies between PM_GENERIC_DOMAINS and PM_RUNTIME * from sysfs.c, so generalize it.
* are too loose to generalize it.
*/ */
#ifdef CONFIG_PM_RUNTIME
static void rtpm_status_str(struct seq_file *s, struct device *dev) static void rtpm_status_str(struct seq_file *s, struct device *dev)
{ {
static const char * const status_lookup[] = { static const char * const status_lookup[] = {
...@@ -2261,12 +2239,6 @@ static void rtpm_status_str(struct seq_file *s, struct device *dev) ...@@ -2261,12 +2239,6 @@ static void rtpm_status_str(struct seq_file *s, struct device *dev)
seq_puts(s, p); seq_puts(s, p);
} }
#else
static void rtpm_status_str(struct seq_file *s, struct device *dev)
{
seq_puts(s, "active");
}
#endif
static int pm_genpd_summary_one(struct seq_file *s, static int pm_genpd_summary_one(struct seq_file *s,
struct generic_pm_domain *gpd) struct generic_pm_domain *gpd)
......
...@@ -11,8 +11,6 @@ ...@@ -11,8 +11,6 @@
#include <linux/pm_qos.h> #include <linux/pm_qos.h>
#include <linux/hrtimer.h> #include <linux/hrtimer.h>
#ifdef CONFIG_PM_RUNTIME
static int dev_update_qos_constraint(struct device *dev, void *data) static int dev_update_qos_constraint(struct device *dev, void *data)
{ {
s64 *constraint_ns_p = data; s64 *constraint_ns_p = data;
...@@ -227,15 +225,6 @@ static bool always_on_power_down_ok(struct dev_pm_domain *domain) ...@@ -227,15 +225,6 @@ static bool always_on_power_down_ok(struct dev_pm_domain *domain)
return false; return false;
} }
#else /* !CONFIG_PM_RUNTIME */
static inline bool default_stop_ok(struct device *dev) { return false; }
#define default_power_down_ok NULL
#define always_on_power_down_ok NULL
#endif /* !CONFIG_PM_RUNTIME */
struct dev_power_governor simple_qos_governor = { struct dev_power_governor simple_qos_governor = {
.stop_ok = default_stop_ok, .stop_ok = default_stop_ok,
.power_down_ok = default_power_down_ok, .power_down_ok = default_power_down_ok,
......
...@@ -9,7 +9,7 @@ static inline void device_pm_init_common(struct device *dev) ...@@ -9,7 +9,7 @@ static inline void device_pm_init_common(struct device *dev)
} }
} }
#ifdef CONFIG_PM_RUNTIME #ifdef CONFIG_PM
static inline void pm_runtime_early_init(struct device *dev) static inline void pm_runtime_early_init(struct device *dev)
{ {
...@@ -20,7 +20,21 @@ static inline void pm_runtime_early_init(struct device *dev) ...@@ -20,7 +20,21 @@ static inline void pm_runtime_early_init(struct device *dev)
extern void pm_runtime_init(struct device *dev); extern void pm_runtime_init(struct device *dev);
extern void pm_runtime_remove(struct device *dev); extern void pm_runtime_remove(struct device *dev);
#else /* !CONFIG_PM_RUNTIME */ /*
* sysfs.c
*/
extern int dpm_sysfs_add(struct device *dev);
extern void dpm_sysfs_remove(struct device *dev);
extern void rpm_sysfs_remove(struct device *dev);
extern int wakeup_sysfs_add(struct device *dev);
extern void wakeup_sysfs_remove(struct device *dev);
extern int pm_qos_sysfs_add_resume_latency(struct device *dev);
extern void pm_qos_sysfs_remove_resume_latency(struct device *dev);
extern int pm_qos_sysfs_add_flags(struct device *dev);
extern void pm_qos_sysfs_remove_flags(struct device *dev);
#else /* CONFIG_PM */
static inline void pm_runtime_early_init(struct device *dev) static inline void pm_runtime_early_init(struct device *dev)
{ {
...@@ -30,7 +44,15 @@ static inline void pm_runtime_early_init(struct device *dev) ...@@ -30,7 +44,15 @@ static inline void pm_runtime_early_init(struct device *dev)
static inline void pm_runtime_init(struct device *dev) {} static inline void pm_runtime_init(struct device *dev) {}
static inline void pm_runtime_remove(struct device *dev) {} static inline void pm_runtime_remove(struct device *dev) {}
#endif /* !CONFIG_PM_RUNTIME */ static inline int dpm_sysfs_add(struct device *dev) { return 0; }
static inline void dpm_sysfs_remove(struct device *dev) {}
static inline void rpm_sysfs_remove(struct device *dev) {}
static inline int wakeup_sysfs_add(struct device *dev) { return 0; }
static inline void wakeup_sysfs_remove(struct device *dev) {}
static inline int pm_qos_sysfs_add(struct device *dev) { return 0; }
static inline void pm_qos_sysfs_remove(struct device *dev) {}
#endif
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
...@@ -77,31 +99,3 @@ static inline void device_pm_init(struct device *dev) ...@@ -77,31 +99,3 @@ static inline void device_pm_init(struct device *dev)
device_pm_sleep_init(dev); device_pm_sleep_init(dev);
pm_runtime_init(dev); pm_runtime_init(dev);
} }
#ifdef CONFIG_PM
/*
* sysfs.c
*/
extern int dpm_sysfs_add(struct device *dev);
extern void dpm_sysfs_remove(struct device *dev);
extern void rpm_sysfs_remove(struct device *dev);
extern int wakeup_sysfs_add(struct device *dev);
extern void wakeup_sysfs_remove(struct device *dev);
extern int pm_qos_sysfs_add_resume_latency(struct device *dev);
extern void pm_qos_sysfs_remove_resume_latency(struct device *dev);
extern int pm_qos_sysfs_add_flags(struct device *dev);
extern void pm_qos_sysfs_remove_flags(struct device *dev);
#else /* CONFIG_PM */
static inline int dpm_sysfs_add(struct device *dev) { return 0; }
static inline void dpm_sysfs_remove(struct device *dev) {}
static inline void rpm_sysfs_remove(struct device *dev) {}
static inline int wakeup_sysfs_add(struct device *dev) { return 0; }
static inline void wakeup_sysfs_remove(struct device *dev) {}
static inline int pm_qos_sysfs_add(struct device *dev) { return 0; }
static inline void pm_qos_sysfs_remove(struct device *dev) {}
#endif
...@@ -599,7 +599,6 @@ int dev_pm_qos_add_ancestor_request(struct device *dev, ...@@ -599,7 +599,6 @@ int dev_pm_qos_add_ancestor_request(struct device *dev,
} }
EXPORT_SYMBOL_GPL(dev_pm_qos_add_ancestor_request); EXPORT_SYMBOL_GPL(dev_pm_qos_add_ancestor_request);
#ifdef CONFIG_PM_RUNTIME
static void __dev_pm_qos_drop_user_request(struct device *dev, static void __dev_pm_qos_drop_user_request(struct device *dev,
enum dev_pm_qos_req_type type) enum dev_pm_qos_req_type type)
{ {
...@@ -880,7 +879,3 @@ int dev_pm_qos_update_user_latency_tolerance(struct device *dev, s32 val) ...@@ -880,7 +879,3 @@ int dev_pm_qos_update_user_latency_tolerance(struct device *dev, s32 val)
mutex_unlock(&dev_pm_qos_mtx); mutex_unlock(&dev_pm_qos_mtx);
return ret; return ret;
} }
#else /* !CONFIG_PM_RUNTIME */
static void __dev_pm_qos_hide_latency_limit(struct device *dev) {}
static void __dev_pm_qos_hide_flags(struct device *dev) {}
#endif /* CONFIG_PM_RUNTIME */
...@@ -45,8 +45,6 @@ static pm_callback_t __rpm_get_callback(struct device *dev, size_t cb_offset) ...@@ -45,8 +45,6 @@ static pm_callback_t __rpm_get_callback(struct device *dev, size_t cb_offset)
#define RPM_GET_CALLBACK(dev, callback) \ #define RPM_GET_CALLBACK(dev, callback) \
__rpm_get_callback(dev, offsetof(struct dev_pm_ops, callback)) __rpm_get_callback(dev, offsetof(struct dev_pm_ops, callback))
#ifdef CONFIG_PM_RUNTIME
static int rpm_resume(struct device *dev, int rpmflags); static int rpm_resume(struct device *dev, int rpmflags);
static int rpm_suspend(struct device *dev, int rpmflags); static int rpm_suspend(struct device *dev, int rpmflags);
...@@ -1399,7 +1397,6 @@ void pm_runtime_remove(struct device *dev) ...@@ -1399,7 +1397,6 @@ void pm_runtime_remove(struct device *dev)
if (dev->power.irq_safe && dev->parent) if (dev->power.irq_safe && dev->parent)
pm_runtime_put(dev->parent); pm_runtime_put(dev->parent);
} }
#endif
/** /**
* pm_runtime_force_suspend - Force a device into suspend state if needed. * pm_runtime_force_suspend - Force a device into suspend state if needed.
...@@ -1419,12 +1416,6 @@ int pm_runtime_force_suspend(struct device *dev) ...@@ -1419,12 +1416,6 @@ int pm_runtime_force_suspend(struct device *dev)
int ret = 0; int ret = 0;
pm_runtime_disable(dev); pm_runtime_disable(dev);
/*
* Note that pm_runtime_status_suspended() returns false while
* !CONFIG_PM_RUNTIME, which means the device will be put into low
* power state.
*/
if (pm_runtime_status_suspended(dev)) if (pm_runtime_status_suspended(dev))
return 0; return 0;
......
...@@ -95,7 +95,6 @@ ...@@ -95,7 +95,6 @@
const char power_group_name[] = "power"; const char power_group_name[] = "power";
EXPORT_SYMBOL_GPL(power_group_name); EXPORT_SYMBOL_GPL(power_group_name);
#ifdef CONFIG_PM_RUNTIME
static const char ctrl_auto[] = "auto"; static const char ctrl_auto[] = "auto";
static const char ctrl_on[] = "on"; static const char ctrl_on[] = "on";
...@@ -330,7 +329,6 @@ static ssize_t pm_qos_remote_wakeup_store(struct device *dev, ...@@ -330,7 +329,6 @@ static ssize_t pm_qos_remote_wakeup_store(struct device *dev,
static DEVICE_ATTR(pm_qos_remote_wakeup, 0644, static DEVICE_ATTR(pm_qos_remote_wakeup, 0644,
pm_qos_remote_wakeup_show, pm_qos_remote_wakeup_store); pm_qos_remote_wakeup_show, pm_qos_remote_wakeup_store);
#endif /* CONFIG_PM_RUNTIME */
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
static const char _enabled[] = "enabled"; static const char _enabled[] = "enabled";
...@@ -531,8 +529,6 @@ static DEVICE_ATTR(wakeup_prevent_sleep_time_ms, 0444, ...@@ -531,8 +529,6 @@ static DEVICE_ATTR(wakeup_prevent_sleep_time_ms, 0444,
#endif /* CONFIG_PM_SLEEP */ #endif /* CONFIG_PM_SLEEP */
#ifdef CONFIG_PM_ADVANCED_DEBUG #ifdef CONFIG_PM_ADVANCED_DEBUG
#ifdef CONFIG_PM_RUNTIME
static ssize_t rtpm_usagecount_show(struct device *dev, static ssize_t rtpm_usagecount_show(struct device *dev,
struct device_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
...@@ -562,10 +558,7 @@ static DEVICE_ATTR(runtime_usage, 0444, rtpm_usagecount_show, NULL); ...@@ -562,10 +558,7 @@ static DEVICE_ATTR(runtime_usage, 0444, rtpm_usagecount_show, NULL);
static DEVICE_ATTR(runtime_active_kids, 0444, rtpm_children_show, NULL); static DEVICE_ATTR(runtime_active_kids, 0444, rtpm_children_show, NULL);
static DEVICE_ATTR(runtime_enabled, 0444, rtpm_enabled_show, NULL); static DEVICE_ATTR(runtime_enabled, 0444, rtpm_enabled_show, NULL);
#endif
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
static ssize_t async_show(struct device *dev, struct device_attribute *attr, static ssize_t async_show(struct device *dev, struct device_attribute *attr,
char *buf) char *buf)
{ {
...@@ -595,7 +588,7 @@ static ssize_t async_store(struct device *dev, struct device_attribute *attr, ...@@ -595,7 +588,7 @@ static ssize_t async_store(struct device *dev, struct device_attribute *attr,
static DEVICE_ATTR(async, 0644, async_show, async_store); static DEVICE_ATTR(async, 0644, async_show, async_store);
#endif #endif /* CONFIG_PM_SLEEP */
#endif /* CONFIG_PM_ADVANCED_DEBUG */ #endif /* CONFIG_PM_ADVANCED_DEBUG */
static struct attribute *power_attrs[] = { static struct attribute *power_attrs[] = {
...@@ -603,12 +596,10 @@ static struct attribute *power_attrs[] = { ...@@ -603,12 +596,10 @@ static struct attribute *power_attrs[] = {
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
&dev_attr_async.attr, &dev_attr_async.attr,
#endif #endif
#ifdef CONFIG_PM_RUNTIME
&dev_attr_runtime_status.attr, &dev_attr_runtime_status.attr,
&dev_attr_runtime_usage.attr, &dev_attr_runtime_usage.attr,
&dev_attr_runtime_active_kids.attr, &dev_attr_runtime_active_kids.attr,
&dev_attr_runtime_enabled.attr, &dev_attr_runtime_enabled.attr,
#endif
#endif /* CONFIG_PM_ADVANCED_DEBUG */ #endif /* CONFIG_PM_ADVANCED_DEBUG */
NULL, NULL,
}; };
...@@ -640,7 +631,6 @@ static struct attribute_group pm_wakeup_attr_group = { ...@@ -640,7 +631,6 @@ static struct attribute_group pm_wakeup_attr_group = {
}; };
static struct attribute *runtime_attrs[] = { static struct attribute *runtime_attrs[] = {
#ifdef CONFIG_PM_RUNTIME
#ifndef CONFIG_PM_ADVANCED_DEBUG #ifndef CONFIG_PM_ADVANCED_DEBUG
&dev_attr_runtime_status.attr, &dev_attr_runtime_status.attr,
#endif #endif
...@@ -648,7 +638,6 @@ static struct attribute *runtime_attrs[] = { ...@@ -648,7 +638,6 @@ static struct attribute *runtime_attrs[] = {
&dev_attr_runtime_suspended_time.attr, &dev_attr_runtime_suspended_time.attr,
&dev_attr_runtime_active_time.attr, &dev_attr_runtime_active_time.attr,
&dev_attr_autosuspend_delay_ms.attr, &dev_attr_autosuspend_delay_ms.attr,
#endif /* CONFIG_PM_RUNTIME */
NULL, NULL,
}; };
static struct attribute_group pm_runtime_attr_group = { static struct attribute_group pm_runtime_attr_group = {
...@@ -657,9 +646,7 @@ static struct attribute_group pm_runtime_attr_group = { ...@@ -657,9 +646,7 @@ static struct attribute_group pm_runtime_attr_group = {
}; };
static struct attribute *pm_qos_resume_latency_attrs[] = { static struct attribute *pm_qos_resume_latency_attrs[] = {
#ifdef CONFIG_PM_RUNTIME
&dev_attr_pm_qos_resume_latency_us.attr, &dev_attr_pm_qos_resume_latency_us.attr,
#endif /* CONFIG_PM_RUNTIME */
NULL, NULL,
}; };
static struct attribute_group pm_qos_resume_latency_attr_group = { static struct attribute_group pm_qos_resume_latency_attr_group = {
...@@ -668,9 +655,7 @@ static struct attribute_group pm_qos_resume_latency_attr_group = { ...@@ -668,9 +655,7 @@ static struct attribute_group pm_qos_resume_latency_attr_group = {
}; };
static struct attribute *pm_qos_latency_tolerance_attrs[] = { static struct attribute *pm_qos_latency_tolerance_attrs[] = {
#ifdef CONFIG_PM_RUNTIME
&dev_attr_pm_qos_latency_tolerance_us.attr, &dev_attr_pm_qos_latency_tolerance_us.attr,
#endif /* CONFIG_PM_RUNTIME */
NULL, NULL,
}; };
static struct attribute_group pm_qos_latency_tolerance_attr_group = { static struct attribute_group pm_qos_latency_tolerance_attr_group = {
...@@ -679,10 +664,8 @@ static struct attribute_group pm_qos_latency_tolerance_attr_group = { ...@@ -679,10 +664,8 @@ static struct attribute_group pm_qos_latency_tolerance_attr_group = {
}; };
static struct attribute *pm_qos_flags_attrs[] = { static struct attribute *pm_qos_flags_attrs[] = {
#ifdef CONFIG_PM_RUNTIME
&dev_attr_pm_qos_no_power_off.attr, &dev_attr_pm_qos_no_power_off.attr,
&dev_attr_pm_qos_remote_wakeup.attr, &dev_attr_pm_qos_remote_wakeup.attr,
#endif /* CONFIG_PM_RUNTIME */
NULL, NULL,
}; };
static struct attribute_group pm_qos_flags_attr_group = { static struct attribute_group pm_qos_flags_attr_group = {
......
...@@ -576,7 +576,7 @@ struct dev_pm_info { ...@@ -576,7 +576,7 @@ struct dev_pm_info {
#else #else
unsigned int should_wakeup:1; unsigned int should_wakeup:1;
#endif #endif
#ifdef CONFIG_PM_RUNTIME #ifdef CONFIG_PM
struct timer_list suspend_timer; struct timer_list suspend_timer;
unsigned long timer_expires; unsigned long timer_expires;
struct work_struct work; struct work_struct work;
......
...@@ -147,6 +147,7 @@ extern void pm_genpd_init(struct generic_pm_domain *genpd, ...@@ -147,6 +147,7 @@ extern void pm_genpd_init(struct generic_pm_domain *genpd,
extern int pm_genpd_poweron(struct generic_pm_domain *genpd); extern int pm_genpd_poweron(struct generic_pm_domain *genpd);
extern int pm_genpd_name_poweron(const char *domain_name); extern int pm_genpd_name_poweron(const char *domain_name);
extern void pm_genpd_poweroff_unused(void);
extern struct dev_power_governor simple_qos_governor; extern struct dev_power_governor simple_qos_governor;
extern struct dev_power_governor pm_domain_always_on_gov; extern struct dev_power_governor pm_domain_always_on_gov;
...@@ -221,6 +222,7 @@ static inline int pm_genpd_name_poweron(const char *domain_name) ...@@ -221,6 +222,7 @@ static inline int pm_genpd_name_poweron(const char *domain_name)
{ {
return -ENOSYS; return -ENOSYS;
} }
static inline void pm_genpd_poweroff_unused(void) {}
#define simple_qos_governor NULL #define simple_qos_governor NULL
#define pm_domain_always_on_gov NULL #define pm_domain_always_on_gov NULL
#endif #endif
...@@ -237,12 +239,6 @@ static inline int pm_genpd_name_add_device(const char *domain_name, ...@@ -237,12 +239,6 @@ static inline int pm_genpd_name_add_device(const char *domain_name,
return __pm_genpd_name_add_device(domain_name, dev, NULL); return __pm_genpd_name_add_device(domain_name, dev, NULL);
} }
#ifdef CONFIG_PM_GENERIC_DOMAINS_RUNTIME
extern void pm_genpd_poweroff_unused(void);
#else
static inline void pm_genpd_poweroff_unused(void) {}
#endif
#ifdef CONFIG_PM_GENERIC_DOMAINS_SLEEP #ifdef CONFIG_PM_GENERIC_DOMAINS_SLEEP
extern void pm_genpd_syscore_poweroff(struct device *dev); extern void pm_genpd_syscore_poweroff(struct device *dev);
extern void pm_genpd_syscore_poweron(struct device *dev); extern void pm_genpd_syscore_poweron(struct device *dev);
......
...@@ -154,6 +154,23 @@ void dev_pm_qos_constraints_destroy(struct device *dev); ...@@ -154,6 +154,23 @@ void dev_pm_qos_constraints_destroy(struct device *dev);
int dev_pm_qos_add_ancestor_request(struct device *dev, int dev_pm_qos_add_ancestor_request(struct device *dev,
struct dev_pm_qos_request *req, struct dev_pm_qos_request *req,
enum dev_pm_qos_req_type type, s32 value); enum dev_pm_qos_req_type type, s32 value);
int dev_pm_qos_expose_latency_limit(struct device *dev, s32 value);
void dev_pm_qos_hide_latency_limit(struct device *dev);
int dev_pm_qos_expose_flags(struct device *dev, s32 value);
void dev_pm_qos_hide_flags(struct device *dev);
int dev_pm_qos_update_flags(struct device *dev, s32 mask, bool set);
s32 dev_pm_qos_get_user_latency_tolerance(struct device *dev);
int dev_pm_qos_update_user_latency_tolerance(struct device *dev, s32 val);
static inline s32 dev_pm_qos_requested_resume_latency(struct device *dev)
{
return dev->power.qos->resume_latency_req->data.pnode.prio;
}
static inline s32 dev_pm_qos_requested_flags(struct device *dev)
{
return dev->power.qos->flags_req->data.flr.flags;
}
#else #else
static inline enum pm_qos_flags_status __dev_pm_qos_flags(struct device *dev, static inline enum pm_qos_flags_status __dev_pm_qos_flags(struct device *dev,
s32 mask) s32 mask)
...@@ -200,27 +217,6 @@ static inline int dev_pm_qos_add_ancestor_request(struct device *dev, ...@@ -200,27 +217,6 @@ static inline int dev_pm_qos_add_ancestor_request(struct device *dev,
enum dev_pm_qos_req_type type, enum dev_pm_qos_req_type type,
s32 value) s32 value)
{ return 0; } { return 0; }
#endif
#ifdef CONFIG_PM_RUNTIME
int dev_pm_qos_expose_latency_limit(struct device *dev, s32 value);
void dev_pm_qos_hide_latency_limit(struct device *dev);
int dev_pm_qos_expose_flags(struct device *dev, s32 value);
void dev_pm_qos_hide_flags(struct device *dev);
int dev_pm_qos_update_flags(struct device *dev, s32 mask, bool set);
s32 dev_pm_qos_get_user_latency_tolerance(struct device *dev);
int dev_pm_qos_update_user_latency_tolerance(struct device *dev, s32 val);
static inline s32 dev_pm_qos_requested_resume_latency(struct device *dev)
{
return dev->power.qos->resume_latency_req->data.pnode.prio;
}
static inline s32 dev_pm_qos_requested_flags(struct device *dev)
{
return dev->power.qos->flags_req->data.flr.flags;
}
#else
static inline int dev_pm_qos_expose_latency_limit(struct device *dev, s32 value) static inline int dev_pm_qos_expose_latency_limit(struct device *dev, s32 value)
{ return 0; } { return 0; }
static inline void dev_pm_qos_hide_latency_limit(struct device *dev) {} static inline void dev_pm_qos_hide_latency_limit(struct device *dev) {}
......
...@@ -35,16 +35,6 @@ extern int pm_generic_runtime_suspend(struct device *dev); ...@@ -35,16 +35,6 @@ extern int pm_generic_runtime_suspend(struct device *dev);
extern int pm_generic_runtime_resume(struct device *dev); extern int pm_generic_runtime_resume(struct device *dev);
extern int pm_runtime_force_suspend(struct device *dev); extern int pm_runtime_force_suspend(struct device *dev);
extern int pm_runtime_force_resume(struct device *dev); extern int pm_runtime_force_resume(struct device *dev);
#else
static inline bool queue_pm_work(struct work_struct *work) { return false; }
static inline int pm_generic_runtime_suspend(struct device *dev) { return 0; }
static inline int pm_generic_runtime_resume(struct device *dev) { return 0; }
static inline int pm_runtime_force_suspend(struct device *dev) { return 0; }
static inline int pm_runtime_force_resume(struct device *dev) { return 0; }
#endif
#ifdef CONFIG_PM_RUNTIME
extern int __pm_runtime_idle(struct device *dev, int rpmflags); extern int __pm_runtime_idle(struct device *dev, int rpmflags);
extern int __pm_runtime_suspend(struct device *dev, int rpmflags); extern int __pm_runtime_suspend(struct device *dev, int rpmflags);
...@@ -128,7 +118,14 @@ static inline void pm_runtime_mark_last_busy(struct device *dev) ...@@ -128,7 +118,14 @@ static inline void pm_runtime_mark_last_busy(struct device *dev)
ACCESS_ONCE(dev->power.last_busy) = jiffies; ACCESS_ONCE(dev->power.last_busy) = jiffies;
} }
#else /* !CONFIG_PM_RUNTIME */ #else /* !CONFIG_PM */
static inline bool queue_pm_work(struct work_struct *work) { return false; }
static inline int pm_generic_runtime_suspend(struct device *dev) { return 0; }
static inline int pm_generic_runtime_resume(struct device *dev) { return 0; }
static inline int pm_runtime_force_suspend(struct device *dev) { return 0; }
static inline int pm_runtime_force_resume(struct device *dev) { return 0; }
static inline int __pm_runtime_idle(struct device *dev, int rpmflags) static inline int __pm_runtime_idle(struct device *dev, int rpmflags)
{ {
...@@ -179,7 +176,7 @@ static inline unsigned long pm_runtime_autosuspend_expiration( ...@@ -179,7 +176,7 @@ static inline unsigned long pm_runtime_autosuspend_expiration(
static inline void pm_runtime_set_memalloc_noio(struct device *dev, static inline void pm_runtime_set_memalloc_noio(struct device *dev,
bool enable){} bool enable){}
#endif /* !CONFIG_PM_RUNTIME */ #endif /* !CONFIG_PM */
static inline int pm_runtime_idle(struct device *dev) static inline int pm_runtime_idle(struct device *dev)
{ {
......
...@@ -298,10 +298,6 @@ config PM_GENERIC_DOMAINS_SLEEP ...@@ -298,10 +298,6 @@ config PM_GENERIC_DOMAINS_SLEEP
def_bool y def_bool y
depends on PM_SLEEP && PM_GENERIC_DOMAINS depends on PM_SLEEP && PM_GENERIC_DOMAINS
config PM_GENERIC_DOMAINS_RUNTIME
def_bool y
depends on PM_RUNTIME && PM_GENERIC_DOMAINS
config PM_GENERIC_DOMAINS_OF config PM_GENERIC_DOMAINS_OF
def_bool y def_bool y
depends on PM_GENERIC_DOMAINS && OF depends on PM_GENERIC_DOMAINS && OF
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment