* pm-cpuidle: (27 commits) intel_idle: Clean up irtl_2_usec() intel_idle: Move 3 functions closer to their callers intel_idle: Annotate initialization code and data structures intel_idle: Move and clean up intel_idle_cpuidle_devices_uninit() intel_idle: Rearrange intel_idle_cpuidle_driver_init() intel_idle: Clean up NULL pointer check in intel_idle_init() intel_idle: Fold intel_idle_probe() into intel_idle_init() intel_idle: Eliminate __setup_broadcast_timer() cpuidle: fix cpuidle_find_deepest_state() kerneldoc warnings cpuidle: sysfs: fix warnings when compiling with W=1 cpuidle: coupled: fix warnings when compiling with W=1 Documentation: admin-guide: PM: Add intel_idle document cpuidle: arm: Enable compile testing for some of drivers cpuidle: Drop unused cpuidle_driver_ref/unref() functions intel_idle: Use ACPI _CST on server systems intel_idle: Add module parameter to prevent ACPI _CST from being used intel_idle: Allow ACPI _CST to be used for selected known processors cpuidle: Allow idle states to be disabled by default intel_idle: Use ACPI _CST for processor models without C-state tables intel_idle: Refactor intel_idle_cpuidle_driver_init() ...
Showing the changes to include/linux (2 of 17 files). Show all
Unified · Split
| @@ -279,6 +279,21 @@ static inline bool invalid_phys_cpuid(phys_cpuid_t phys_id) · 278 unmodified lines | |||
| 279 | 279 | ||
| 280 | /* Validate the processor object's proc_id */ | 280 | /* Validate the processor object's proc_id */ |
| 281 | bool acpi_duplicate_processor_id(int proc_id); | 281 | bool acpi_duplicate_processor_id(int proc_id); |
| 282 | /* Processor _CTS control */ | ||
| 283 | struct acpi_processor_power; | ||
| 284 | |||
| 285 | #ifdef CONFIG_ACPI_PROCESSOR_CSTATE | ||
| 286 | bool acpi_processor_claim_cst_control(void); | ||
| 287 | int acpi_processor_evaluate_cst(acpi_handle handle, u32 cpu, | ||
| 288 | struct acpi_processor_power *info); | ||
| 289 | #else | ||
| 290 | static inline bool acpi_processor_claim_cst_control(void) { return false; } | ||
| 291 | static inline int acpi_processor_evaluate_cst(acpi_handle handle, u32 cpu, | ||
| 292 | struct acpi_processor_power *info) | ||
| 293 | { | ||
| 294 | return -ENODEV; | ||
| 295 | } | ||
| 296 | #endif | ||
| 282 | 297 | ||
| 283 | #ifdef CONFIG_ACPI_HOTPLUG_CPU | 298 | #ifdef CONFIG_ACPI_HOTPLUG_CPU |
| 284 | /* Arch dependent functions for cpu hotplug support */ | 299 | /* Arch dependent functions for cpu hotplug support */ |
| @@ -77,6 +77,7 @@ struct cpuidle_state { · 76 unmodified lines | |||
| 77 | #define CPUIDLE_FLAG_COUPLED BIT(1) /* state applies to multiple cpus */ | 77 | #define CPUIDLE_FLAG_COUPLED BIT(1) /* state applies to multiple cpus */ |
| 78 | #define CPUIDLE_FLAG_TIMER_STOP BIT(2) /* timer is stopped on this state */ | 78 | #define CPUIDLE_FLAG_TIMER_STOP BIT(2) /* timer is stopped on this state */ |
| 79 | #define CPUIDLE_FLAG_UNUSABLE BIT(3) /* avoid using this state */ | 79 | #define CPUIDLE_FLAG_UNUSABLE BIT(3) /* avoid using this state */ |
| 80 | #define CPUIDLE_FLAG_OFF BIT(4) /* disable this state by default */ | ||
| 80 | 81 | ||
| 81 | struct cpuidle_device_kobj; | 82 | struct cpuidle_device_kobj; |
| 82 | struct cpuidle_state_kobj; | 83 | struct cpuidle_state_kobj; |
| @@ -115,7 +116,6 @@ DECLARE_PER_CPU(struct cpuidle_device, cpuidle_dev); · 32 unmodified lines | |||
| 115 | struct cpuidle_driver { | 116 | struct cpuidle_driver { |
| 116 | const char *name; | 117 | const char *name; |
| 117 | struct module *owner; | 118 | struct module *owner; |
| 118 | int refcnt; | ||
| 119 | 119 | ||
| 120 | /* used by the cpuidle framework to setup the broadcast timer */ | 120 | /* used by the cpuidle framework to setup the broadcast timer */ |
| 121 | unsigned int bctimer:1; | 121 | unsigned int bctimer:1; |
| @@ -147,8 +147,6 @@ extern u64 cpuidle_poll_time(struct cpuidle_driver *drv, · 25 unmodified lines | |||
| 147 | 147 | ||
| 148 | extern int cpuidle_register_driver(struct cpuidle_driver *drv); | 148 | extern int cpuidle_register_driver(struct cpuidle_driver *drv); |
| 149 | extern struct cpuidle_driver *cpuidle_get_driver(void); | 149 | extern struct cpuidle_driver *cpuidle_get_driver(void); |
| 150 | extern struct cpuidle_driver *cpuidle_driver_ref(void); | ||
| 151 | extern void cpuidle_driver_unref(void); | ||
| 152 | extern void cpuidle_driver_state_disabled(struct cpuidle_driver *drv, int idx, | 150 | extern void cpuidle_driver_state_disabled(struct cpuidle_driver *drv, int idx, |
| 153 | bool disable); | 151 | bool disable); |
| 154 | extern void cpuidle_unregister_driver(struct cpuidle_driver *drv); | 152 | extern void cpuidle_unregister_driver(struct cpuidle_driver *drv); |
| @@ -186,8 +184,6 @@ static inline u64 cpuidle_poll_time(struct cpuidle_driver *drv, · 31 unmodified lines | |||
| 186 | static inline int cpuidle_register_driver(struct cpuidle_driver *drv) | 184 | static inline int cpuidle_register_driver(struct cpuidle_driver *drv) |
| 187 | {return -ENODEV; } | 185 | {return -ENODEV; } |
| 188 | static inline struct cpuidle_driver *cpuidle_get_driver(void) {return NULL; } | 186 | static inline struct cpuidle_driver *cpuidle_get_driver(void) {return NULL; } |
| 189 | static inline struct cpuidle_driver *cpuidle_driver_ref(void) {return NULL; } | ||
| 190 | static inline void cpuidle_driver_unref(void) {} | ||
| 191 | static inline void cpuidle_driver_state_disabled(struct cpuidle_driver *drv, | 187 | static inline void cpuidle_driver_state_disabled(struct cpuidle_driver *drv, |
| 192 | int idx, bool disable) { } | 188 | int idx, bool disable) { } |
| 193 | static inline void cpuidle_unregister_driver(struct cpuidle_driver *drv) { } | 189 | static inline void cpuidle_unregister_driver(struct cpuidle_driver *drv) { } |