summaryrefslogtreecommitdiff
path: root/drivers/idle/intel_idle.c
diff options
context:
space:
mode:
authorArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2023-04-19 17:39:45 +0300
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2023-04-27 19:37:36 +0200
commitdb1ae0c99950502d10e09d0c57ed1e16cd854b20 (patch)
tree1ae67c19560a2a09ce3015eca58cd2e1985f1ff2 /drivers/idle/intel_idle.c
parent00433eae1771d355f20c152ddc5976baedb427e2 (diff)
downloadlwn-db1ae0c99950502d10e09d0c57ed1e16cd854b20.tar.gz
lwn-db1ae0c99950502d10e09d0c57ed1e16cd854b20.zip
intel_idle: fix confusing message
By default, all non-POLL C-states are entered with interrupts disabled. There are 2 ways to make 'intel_idle' enter C-states with interrupts enabled: 1. Mark the C-state with the CPUIDLE_FLAG_IRQ_ENABLE flag. 2. Use the force_irq_on module parameter. The former is the "proper" way of doing it, it is per-C-state and per-platform. The latter is for debugging purposes only. The problem is that intel_idle prints the "forced intel_idle_irq" message in both cases, even though the former case does not needed this message, because nothing is forced there. This patch addresses the problem. Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Reviewed-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/idle/intel_idle.c')
-rw-r--r--drivers/idle/intel_idle.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
index 1de36df15d5a..bff0d17aeda4 100644
--- a/drivers/idle/intel_idle.c
+++ b/drivers/idle/intel_idle.c
@@ -1912,8 +1912,9 @@ static void __init intel_idle_init_cstates_icpu(struct cpuidle_driver *drv)
*/
WARN_ON_ONCE(state->flags & CPUIDLE_FLAG_IRQ_ENABLE);
state->enter = intel_idle_ibrs;
- } else if ((state->flags & CPUIDLE_FLAG_IRQ_ENABLE) ||
- force_irq_on) {
+ } else if (state->flags & CPUIDLE_FLAG_IRQ_ENABLE) {
+ state->enter = intel_idle_irq;
+ } else if (force_irq_on) {
pr_info("forced intel_idle_irq for state %d\n", cstate);
state->enter = intel_idle_irq;
}