summaryrefslogtreecommitdiff
path: root/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/0001-ARM-imx6-cpuidle-Use-raw_spinlock_t.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/0001-ARM-imx6-cpuidle-Use-raw_spinlock_t.patch')
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/0001-ARM-imx6-cpuidle-Use-raw_spinlock_t.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/0001-ARM-imx6-cpuidle-Use-raw_spinlock_t.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/0001-ARM-imx6-cpuidle-Use-raw_spinlock_t.patch
new file mode 100644
index 0000000..f5d5962
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/0001-ARM-imx6-cpuidle-Use-raw_spinlock_t.patch
@@ -0,0 +1,51 @@
+From 99ae52edeba17c78753695e0d94d49c5f9e9a803 Mon Sep 17 00:00:00 2001
+Message-Id: <99ae52edeba17c78753695e0d94d49c5f9e9a803.1590137782.git.marcel.ziswiler@toradex.com>
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 29 May 2019 17:42:29 +0200
+Subject: [PATCH] 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: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Reviewed-by: Fabio Estevam <festevam@gmail.com>
+Signed-off-by: Shawn Guo <shawnguo@kernel.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 326e870d71239..d9ac80aa1eb0a 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.25.4
+