* pm-sleep: PM / wakeirq: remove unnecessary parentheses PM / core: Clean up some function headers in power.h PM / hibernate: memory_bm_find_bit(): Tighten node optimisation * pm-domains: PM / Domains: Convert to dev_to_genpd_safe() in genpd_syscore_switch() mmc: tmio: Avoid boilerplate code in ->runtime_suspend() PM / Domains: Implement the ->start() callback for genpd PM / Domains: Introduce dev_pm_domain_start() * pm-opp: PM / OPP: Support adjusting OPP voltages at runtime * powercap: powercap/intel_rapl: add support for Cometlake desktop powercap/intel_rapl: add support for CometLake Mobile
Showing the changes to include/linux (3 of 12 files). Show all
Unified · Split
| @@ -637,6 +637,7 @@ extern void dev_pm_put_subsys_data(struct device *dev); · 636 unmodified lines | ||
| 637 | 637 | * struct dev_pm_domain - power management domain representation. |
| 638 | 638 | * |
| 639 | 639 | * @ops: Power management operations associated with this domain. |
| 640 | + * @start: Called when a user needs to start the device via the domain. | |
| 640 | 641 | * @detach: Called when removing a device from the domain. |
| 641 | 642 | * @activate: Called before executing probe routines for bus types and drivers. |
| 642 | 643 | * @sync: Called after successful driver probe. |
| @@ -648,6 +649,7 @@ extern void dev_pm_put_subsys_data(struct device *dev); · 5 unmodified lines | ||
| 648 | 649 | */ |
| 649 | 650 | struct dev_pm_domain { |
| 650 | 651 | struct dev_pm_ops ops; |
| 652 | + int (*start)(struct device *dev); | |
| 651 | 653 | void (*detach)(struct device *dev, bool power_off); |
| 652 | 654 | int (*activate)(struct device *dev); |
| 653 | 655 | void (*sync)(struct device *dev); |
| @@ -366,6 +366,7 @@ struct device *dev_pm_domain_attach_by_id(struct device *dev, · 365 unmodified lines | ||
| 366 | 366 | struct device *dev_pm_domain_attach_by_name(struct device *dev, |
| 367 | 367 | const char *name); |
| 368 | 368 | void dev_pm_domain_detach(struct device *dev, bool power_off); |
| 369 | +int dev_pm_domain_start(struct device *dev); | |
| 369 | 370 | void dev_pm_domain_set(struct device *dev, struct dev_pm_domain *pd); |
| 370 | 371 | #else |
| 371 | 372 | static inline int dev_pm_domain_attach(struct device *dev, bool power_on) |
| @@ -383,6 +384,10 @@ static inline struct device *dev_pm_domain_attach_by_name(struct device *dev, · 11 unmodified lines | ||
| 383 | 384 | return NULL; |
| 384 | 385 | } |
| 385 | 386 | static inline void dev_pm_domain_detach(struct device *dev, bool power_off) {} |
| 387 | +static inline int dev_pm_domain_start(struct device *dev) | |
| 388 | +{ | |
| 389 | + return 0; | |
| 390 | +} | |
| 386 | 391 | static inline void dev_pm_domain_set(struct device *dev, |
| 387 | 392 | struct dev_pm_domain *pd) {} |
| 388 | 393 | #endif |
| @@ -22,6 +22,7 @@ struct opp_table; · 21 unmodified lines | ||
| 22 | 22 | |
| 23 | 23 | enum dev_pm_opp_event { |
| 24 | 24 | OPP_EVENT_ADD, OPP_EVENT_REMOVE, OPP_EVENT_ENABLE, OPP_EVENT_DISABLE, |
| 25 | + OPP_EVENT_ADJUST_VOLTAGE, | |
| 25 | 26 | }; |
| 26 | 27 | |
| 27 | 28 | /** |
| @@ -113,6 +114,10 @@ int dev_pm_opp_add(struct device *dev, unsigned long freq, · 85 unmodified lines | ||
| 113 | 114 | void dev_pm_opp_remove(struct device *dev, unsigned long freq); |
| 114 | 115 | void dev_pm_opp_remove_all_dynamic(struct device *dev); |
| 115 | 116 | |
| 117 | +int dev_pm_opp_adjust_voltage(struct device *dev, unsigned long freq, | |
| 118 | + unsigned long u_volt, unsigned long u_volt_min, | |
| 119 | + unsigned long u_volt_max); | |
| 120 | + | |
| 116 | 121 | int dev_pm_opp_enable(struct device *dev, unsigned long freq); |
| 117 | 122 | |
| 118 | 123 | int dev_pm_opp_disable(struct device *dev, unsigned long freq); |
| @@ -242,6 +247,14 @@ static inline void dev_pm_opp_remove_all_dynamic(struct device *dev) · 123 unmodified lines | ||
| 242 | 247 | { |
| 243 | 248 | } |
| 244 | 249 | |
| 250 | +static inline int | |
| 251 | +dev_pm_opp_adjust_voltage(struct device *dev, unsigned long freq, | |
| 252 | + unsigned long u_volt, unsigned long u_volt_min, | |
| 253 | + unsigned long u_volt_max) | |
| 254 | +{ | |
| 255 | + return 0; | |
| 256 | +} | |
| 257 | + | |
| 245 | 258 | static inline int dev_pm_opp_enable(struct device *dev, unsigned long freq) |
| 246 | 259 | { |
| 247 | 260 | return 0; |