idle.c (a01353cf1896ea5b8a7bbc5e2b2d38feed8b7aaa) idle.c (89b3098703bd2aa3237ef10a704e6a5838e6ea69)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Generic entry points for the idle threads and
4 * implementation of the idle task scheduling class.
5 *
6 * (NOTE: these are not related to SCHED_IDLE batch scheduled
7 * tasks which are handled in sched/fair.c )
8 */

--- 65 unchanged lines hidden (view full) ---

74/* Weak implementations for optional arch specific functions */
75void __weak arch_cpu_idle_prepare(void) { }
76void __weak arch_cpu_idle_enter(void) { }
77void __weak arch_cpu_idle_exit(void) { }
78void __weak arch_cpu_idle_dead(void) { }
79void __weak arch_cpu_idle(void)
80{
81 cpu_idle_force_poll = 1;
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Generic entry points for the idle threads and
4 * implementation of the idle task scheduling class.
5 *
6 * (NOTE: these are not related to SCHED_IDLE batch scheduled
7 * tasks which are handled in sched/fair.c )
8 */

--- 65 unchanged lines hidden (view full) ---

74/* Weak implementations for optional arch specific functions */
75void __weak arch_cpu_idle_prepare(void) { }
76void __weak arch_cpu_idle_enter(void) { }
77void __weak arch_cpu_idle_exit(void) { }
78void __weak arch_cpu_idle_dead(void) { }
79void __weak arch_cpu_idle(void)
80{
81 cpu_idle_force_poll = 1;
82 raw_local_irq_enable();
83}
84
85/**
86 * default_idle_call - Default CPU idle routine.
87 *
88 * To use when the cpuidle framework cannot be used.
89 */
90void __cpuidle default_idle_call(void)
91{
92 instrumentation_begin();
93 if (!current_clr_polling_and_test()) {
94 trace_cpu_idle(1, smp_processor_id());
95 stop_critical_timings();
96
97 ct_cpuidle_enter();
98 arch_cpu_idle();
82}
83
84/**
85 * default_idle_call - Default CPU idle routine.
86 *
87 * To use when the cpuidle framework cannot be used.
88 */
89void __cpuidle default_idle_call(void)
90{
91 instrumentation_begin();
92 if (!current_clr_polling_and_test()) {
93 trace_cpu_idle(1, smp_processor_id());
94 stop_critical_timings();
95
96 ct_cpuidle_enter();
97 arch_cpu_idle();
99 raw_local_irq_disable();
100 ct_cpuidle_exit();
101
102 start_critical_timings();
103 trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id());
104 }
105 local_irq_enable();
106 instrumentation_end();
107}

--- 397 unchanged lines hidden ---
98 ct_cpuidle_exit();
99
100 start_critical_timings();
101 trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id());
102 }
103 local_irq_enable();
104 instrumentation_end();
105}

--- 397 unchanged lines hidden ---