Loading MAINTAINERS +3 −0 Original line number Diff line number Diff line Loading @@ -3380,6 +3380,7 @@ M: Daniel Lezcano <daniel.lezcano@linaro.org> L: linux-pm@vger.kernel.org S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git B: https://bugzilla.kernel.org F: drivers/cpuidle/* F: include/linux/cpuidle.h Loading Loading @@ -6289,9 +6290,11 @@ S: Maintained F: drivers/platform/x86/intel-vbtn.c INTEL IDLE DRIVER M: Jacob Pan <jacob.jun.pan@linux.intel.com> M: Len Brown <lenb@kernel.org> L: linux-pm@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux.git B: https://bugzilla.kernel.org S: Supported F: drivers/idle/intel_idle.c Loading drivers/cpuidle/cpuidle-powernv.c +1 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ #define POWERNV_THRESHOLD_LATENCY_NS 200000 struct cpuidle_driver powernv_idle_driver = { static struct cpuidle_driver powernv_idle_driver = { .name = "powernv_idle", .owner = THIS_MODULE, }; Loading drivers/cpuidle/cpuidle.c +12 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,17 @@ static int find_deepest_state(struct cpuidle_driver *drv, return ret; } #ifdef CONFIG_SUSPEND /* Set the current cpu to use the deepest idle state, override governors */ void cpuidle_use_deepest_state(bool enable) { struct cpuidle_device *dev; preempt_disable(); dev = cpuidle_get_device(); dev->use_deepest_state = enable; preempt_enable(); } /** * cpuidle_find_deepest_state - Find the deepest available idle state. * @drv: cpuidle driver for the given CPU. Loading @@ -109,6 +119,7 @@ int cpuidle_find_deepest_state(struct cpuidle_driver *drv, return find_deepest_state(drv, dev, UINT_MAX, 0, false); } #ifdef CONFIG_SUSPEND static void enter_freeze_proper(struct cpuidle_driver *drv, struct cpuidle_device *dev, int index) { Loading drivers/cpuidle/dt_idle_states.c +6 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,12 @@ static int init_state_node(struct cpuidle_state *idle_state, * state enter function. */ idle_state->enter = match_id->data; /* * Since this is not a "coupled" state, it's safe to assume interrupts * won't be enabled when it exits allowing the tick to be frozen * safely. So enter() can be also enter_freeze() callback. */ idle_state->enter_freeze = match_id->data; err = of_property_read_u32(state_node, "wakeup-latency-us", &idle_state->exit_latency); Loading drivers/cpuidle/governor.c +0 −4 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ */ #include <linux/mutex.h> #include <linux/module.h> #include <linux/cpuidle.h> #include "cpuidle.h" Loading Loading @@ -53,14 +52,11 @@ int cpuidle_switch_governor(struct cpuidle_governor *gov) if (cpuidle_curr_governor) { list_for_each_entry(dev, &cpuidle_detected_devices, device_list) cpuidle_disable_device(dev); module_put(cpuidle_curr_governor->owner); } cpuidle_curr_governor = gov; if (gov) { if (!try_module_get(cpuidle_curr_governor->owner)) return -EINVAL; list_for_each_entry(dev, &cpuidle_detected_devices, device_list) cpuidle_enable_device(dev); cpuidle_install_idle_handler(); Loading Loading
MAINTAINERS +3 −0 Original line number Diff line number Diff line Loading @@ -3380,6 +3380,7 @@ M: Daniel Lezcano <daniel.lezcano@linaro.org> L: linux-pm@vger.kernel.org S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git B: https://bugzilla.kernel.org F: drivers/cpuidle/* F: include/linux/cpuidle.h Loading Loading @@ -6289,9 +6290,11 @@ S: Maintained F: drivers/platform/x86/intel-vbtn.c INTEL IDLE DRIVER M: Jacob Pan <jacob.jun.pan@linux.intel.com> M: Len Brown <lenb@kernel.org> L: linux-pm@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux.git B: https://bugzilla.kernel.org S: Supported F: drivers/idle/intel_idle.c Loading
drivers/cpuidle/cpuidle-powernv.c +1 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ #define POWERNV_THRESHOLD_LATENCY_NS 200000 struct cpuidle_driver powernv_idle_driver = { static struct cpuidle_driver powernv_idle_driver = { .name = "powernv_idle", .owner = THIS_MODULE, }; Loading
drivers/cpuidle/cpuidle.c +12 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,17 @@ static int find_deepest_state(struct cpuidle_driver *drv, return ret; } #ifdef CONFIG_SUSPEND /* Set the current cpu to use the deepest idle state, override governors */ void cpuidle_use_deepest_state(bool enable) { struct cpuidle_device *dev; preempt_disable(); dev = cpuidle_get_device(); dev->use_deepest_state = enable; preempt_enable(); } /** * cpuidle_find_deepest_state - Find the deepest available idle state. * @drv: cpuidle driver for the given CPU. Loading @@ -109,6 +119,7 @@ int cpuidle_find_deepest_state(struct cpuidle_driver *drv, return find_deepest_state(drv, dev, UINT_MAX, 0, false); } #ifdef CONFIG_SUSPEND static void enter_freeze_proper(struct cpuidle_driver *drv, struct cpuidle_device *dev, int index) { Loading
drivers/cpuidle/dt_idle_states.c +6 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,12 @@ static int init_state_node(struct cpuidle_state *idle_state, * state enter function. */ idle_state->enter = match_id->data; /* * Since this is not a "coupled" state, it's safe to assume interrupts * won't be enabled when it exits allowing the tick to be frozen * safely. So enter() can be also enter_freeze() callback. */ idle_state->enter_freeze = match_id->data; err = of_property_read_u32(state_node, "wakeup-latency-us", &idle_state->exit_latency); Loading
drivers/cpuidle/governor.c +0 −4 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ */ #include <linux/mutex.h> #include <linux/module.h> #include <linux/cpuidle.h> #include "cpuidle.h" Loading Loading @@ -53,14 +52,11 @@ int cpuidle_switch_governor(struct cpuidle_governor *gov) if (cpuidle_curr_governor) { list_for_each_entry(dev, &cpuidle_detected_devices, device_list) cpuidle_disable_device(dev); module_put(cpuidle_curr_governor->owner); } cpuidle_curr_governor = gov; if (gov) { if (!try_module_get(cpuidle_curr_governor->owner)) return -EINVAL; list_for_each_entry(dev, &cpuidle_detected_devices, device_list) cpuidle_enable_device(dev); cpuidle_install_idle_handler(); Loading