History

Merge tag 'pm-4.18-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull more power management updates from Rafael Wysocki: "These revert a recent PM core change that introduced a regression, fix the build when the recently added Kryo cpufreq driver is selected, add support for devices attached to multiple power domains to the generic power domains (genpd) framework, add support for iowait boosting on systens with hardware-managed P-states (HWP) enabled to the intel_pstate driver, modify the behavior of the wakeup_count device attribute in sysfs, fix a few issues and clean up some ugliness, mostly in cpufreq (core and drivers) and in the cpupower utility. Specifics: - Revert a recent PM core change that attempted to fix an issue related to device links, but introduced a regression (Rafael Wysocki) - Fix build when the recently added cpufreq driver for Kryo processors is selected by making it possible to build that driver as a module (Arnd Bergmann) - Fix the long idle detection mechanism in the out-of-band (ondemand and conservative) cpufreq governors (Chen Yu) - Add support for devices in multiple power domains to the generic power domains (genpd) framework (Ulf Hansson) - Add support for iowait boosting on systems with hardware-managed P-states (HWP) enabled to the intel_pstate driver and make it use that feature on systems with Skylake Xeon processors as it is reported to improve performance significantly on those systems (Srinivas Pandruvada) - Fix and update the acpi_cpufreq, ti-cpufreq and imx6q cpufreq drivers (Colin Ian King, Suman Anna, Sébastien Szymanski) - Change the behavior of the wakeup_count device attribute in sysfs to expose the number of events when the device might have aborted system suspend in progress (Ravi Chandra Sadineni) - Fix two minor issues in the cpupower utility (Abhishek Goel, Colin Ian King)" * tag 'pm-4.18-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: Revert "PM / runtime: Fixup reference counting of device link suppliers at probe" cpufreq: imx6q: check speed grades for i.MX6ULL cpufreq: governors: Fix long idle detection logic in load calculation cpufreq: intel_pstate: enable boost for Skylake Xeon PM / wakeup: Export wakeup_count instead of event_count via sysfs PM / Domains: Add dev_pm_domain_attach_by_id() to manage multi PM domains PM / Domains: Add support for multi PM domains per device to genpd PM / Domains: Split genpd_dev_pm_attach() PM / Domains: Don't attach devices in genpd with multi PM domains PM / Domains: dt: Allow power-domain property to be a list of specifiers cpufreq: intel_pstate: New sysfs entry to control HWP boost cpufreq: intel_pstate: HWP boost performance on IO wakeup cpufreq: intel_pstate: Add HWP boost utility and sched util hooks cpufreq: ti-cpufreq: Use devres managed API in probe() cpufreq: ti-cpufreq: Fix an incorrect error return value cpufreq: ACPI: make function acpi_cpufreq_fast_switch() static cpufreq: kryo: allow building as a loadable module cpupower : Fix header name to read idle state name cpupower: fix spelling mistake: "logilename" -> "logfilename"

Linus Torvalds committed 8 years ago

Commit d09fcec2 parents f5b7769 6a900f818 files · +468 −75Browse files

Showing the changes to include/linux (2 of 18 files). Show all

Unified · Split

2 files
  1. include/linux/pm_domain.h +15 −0
  2. include/linux/pm_runtime.h +4 −2
include/linux/pm_domain.h+15−0
@@ -237,6 +237,8 @@ unsigned int of_genpd_opp_to_performance_state(struct device *dev, · 236 unmodified lines
237237 struct device_node *opp_node);
238238
239239 int genpd_dev_pm_attach(struct device *dev);
240+struct device *genpd_dev_pm_attach_by_id(struct device *dev,
241+ unsigned int index);
240242 #else /* !CONFIG_PM_GENERIC_DOMAINS_OF */
241243 static inline int of_genpd_add_provider_simple(struct device_node *np,
242244 struct generic_pm_domain *genpd)
@@ -282,6 +284,12 @@ static inline int genpd_dev_pm_attach(struct device *dev) · 39 unmodified lines
282284 return 0;
283285 }
284286
287+static inline struct device *genpd_dev_pm_attach_by_id(struct device *dev,
288+ unsigned int index)
289+{
290+ return NULL;
291+}
292+
285293 static inline
286294 struct generic_pm_domain *of_genpd_remove_last(struct device_node *np)
287295 {
@@ -291,6 +299,8 @@ struct generic_pm_domain *of_genpd_remove_last(struct device_node *np) · 3 unmodified lines
291299
292300 #ifdef CONFIG_PM
293301 int dev_pm_domain_attach(struct device *dev, bool power_on);
302+struct device *dev_pm_domain_attach_by_id(struct device *dev,
303+ unsigned int index);
294304 void dev_pm_domain_detach(struct device *dev, bool power_off);
295305 void dev_pm_domain_set(struct device *dev, struct dev_pm_domain *pd);
296306 #else
@@ -298,6 +308,11 @@ static inline int dev_pm_domain_attach(struct device *dev, bool power_on) · 1 unmodified line
298308 {
299309 return 0;
300310 }
311+static inline struct device *dev_pm_domain_attach_by_id(struct device *dev,
312+ unsigned int index)
313+{
314+ return NULL;
315+}
301316 static inline void dev_pm_domain_detach(struct device *dev, bool power_off) {}
302317 static inline void dev_pm_domain_set(struct device *dev,
303318 struct dev_pm_domain *pd) {}
include/linux/pm_runtime.h+4−2
@@ -56,7 +56,8 @@ extern void pm_runtime_update_max_time_suspended(struct device *dev, · 55 unmodified lines
5656 s64 delta_ns);
5757 extern void pm_runtime_set_memalloc_noio(struct device *dev, bool enable);
5858 extern void pm_runtime_clean_up_links(struct device *dev);
59−extern void pm_runtime_resume_suppliers(struct device *dev);
59+extern void pm_runtime_get_suppliers(struct device *dev);
60+extern void pm_runtime_put_suppliers(struct device *dev);
6061 extern void pm_runtime_new_link(struct device *dev);
6162 extern void pm_runtime_drop_link(struct device *dev);
6263
@@ -172,7 +173,8 @@ static inline unsigned long pm_runtime_autosuspend_expiration( · 109 unmodified lines
172173 static inline void pm_runtime_set_memalloc_noio(struct device *dev,
173174 bool enable){}
174175 static inline void pm_runtime_clean_up_links(struct device *dev) {}
175−static inline void pm_runtime_resume_suppliers(struct device *dev) {}
176+static inline void pm_runtime_get_suppliers(struct device *dev) {}
177+static inline void pm_runtime_put_suppliers(struct device *dev) {}
176178 static inline void pm_runtime_new_link(struct device *dev) {}
177179 static inline void pm_runtime_drop_link(struct device *dev) {}
178180