Commit 99ae52ed authored by Sebastian Andrzej Siewior's avatar Sebastian Andrzej Siewior Committed by Shawn Guo

ARM: imx6: cpuidle: Use raw_spinlock_t

The idle call back is invoked with disabled interrupts and requires
raw_spinlock_t locks to work.
Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
Reviewed-by: default avatarFabio Estevam <festevam@gmail.com>
Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
parent a188339c
......@@ -17,22 +17,22 @@
#include "hardware.h"
static int num_idle_cpus = 0;
static DEFINE_SPINLOCK(cpuidle_lock);
static DEFINE_RAW_SPINLOCK(cpuidle_lock);
static int imx6q_enter_wait(struct cpuidle_device *dev,
struct cpuidle_driver *drv, int index)
{
spin_lock(&cpuidle_lock);
raw_spin_lock(&cpuidle_lock);
if (++num_idle_cpus == num_online_cpus())
imx6_set_lpm(WAIT_UNCLOCKED);
spin_unlock(&cpuidle_lock);
raw_spin_unlock(&cpuidle_lock);
cpu_do_idle();
spin_lock(&cpuidle_lock);
raw_spin_lock(&cpuidle_lock);
if (num_idle_cpus-- == num_online_cpus())
imx6_set_lpm(WAIT_CLOCKED);
spin_unlock(&cpuidle_lock);
raw_spin_unlock(&cpuidle_lock);
return index;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment