53 lines
1.6 KiB
Diff
53 lines
1.6 KiB
Diff
From 17d57bbeda05b3bfe93276333b7b1db0958796d7 Mon Sep 17 00:00:00 2001
|
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
Date: Tue, 14 May 2019 17:07:44 +0200
|
|
Subject: [PATCH 271/283] arm: imx6: cpuidle: Use raw_spinlock_t
|
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.59-rt24.tar.xz
|
|
|
|
[ Upstream commit 40d0332ec8312e9c090f0a5414d9c90e12b13611 ]
|
|
|
|
The idle call back is invoked with disabled interrupts and requires
|
|
raw_spinlock_t locks to work.
|
|
|
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
|
---
|
|
arch/arm/mach-imx/cpuidle-imx6q.c | 10 +++++-----
|
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/arch/arm/mach-imx/cpuidle-imx6q.c b/arch/arm/mach-imx/cpuidle-imx6q.c
|
|
index 326e870d7123..d9ac80aa1eb0 100644
|
|
--- a/arch/arm/mach-imx/cpuidle-imx6q.c
|
|
+++ b/arch/arm/mach-imx/cpuidle-imx6q.c
|
|
@@ -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;
|
|
}
|
|
--
|
|
2.20.1
|
|
|