]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - queue-4.14/arm-imx-cpuidle-imx6sx-restrict-the-sw2iso-increase-to-i.mx6sx.patch
4.14-stable patches
[thirdparty/kernel/stable-queue.git] / queue-4.14 / arm-imx-cpuidle-imx6sx-restrict-the-sw2iso-increase-to-i.mx6sx.patch
1 From b25af2ff7c07bd19af74e3f64ff82e2880d13d81 Mon Sep 17 00:00:00 2001
2 From: Fabio Estevam <festevam@gmail.com>
3 Date: Mon, 13 May 2019 00:15:31 -0300
4 Subject: ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 From: Fabio Estevam <festevam@gmail.com>
10
11 commit b25af2ff7c07bd19af74e3f64ff82e2880d13d81 upstream.
12
13 Since commit 1e434b703248 ("ARM: imx: update the cpu power up timing
14 setting on i.mx6sx") some characters loss is noticed on i.MX6ULL UART
15 as reported by Christoph Niedermaier.
16
17 The intention of such commit was to increase the SW2ISO field for i.MX6SX
18 only, but since cpuidle-imx6sx is also used on i.MX6UL/i.MX6ULL this caused
19 unintended side effects on other SoCs.
20
21 Fix this problem by keeping the original SW2ISO value for i.MX6UL/i.MX6ULL
22 and only increase SW2ISO in the i.MX6SX case.
23
24 Cc: stable@vger.kernel.org
25 Fixes: 1e434b703248 ("ARM: imx: update the cpu power up timing setting on i.mx6sx")
26 Reported-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
27 Signed-off-by: Fabio Estevam <festevam@gmail.com>
28 Tested-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
29 Tested-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
30 Signed-off-by: Shawn Guo <shawnguo@kernel.org>
31 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
32
33 ---
34 arch/arm/mach-imx/cpuidle-imx6sx.c | 3 ++-
35 1 file changed, 2 insertions(+), 1 deletion(-)
36
37 --- a/arch/arm/mach-imx/cpuidle-imx6sx.c
38 +++ b/arch/arm/mach-imx/cpuidle-imx6sx.c
39 @@ -15,6 +15,7 @@
40
41 #include "common.h"
42 #include "cpuidle.h"
43 +#include "hardware.h"
44
45 static int imx6sx_idle_finish(unsigned long val)
46 {
47 @@ -108,7 +109,7 @@ int __init imx6sx_cpuidle_init(void)
48 * except for power up sw2iso which need to be
49 * larger than LDO ramp up time.
50 */
51 - imx_gpc_set_arm_power_up_timing(0xf, 1);
52 + imx_gpc_set_arm_power_up_timing(cpu_is_imx6sx() ? 0xf : 0x2, 1);
53 imx_gpc_set_arm_power_down_timing(1, 1);
54
55 return cpuidle_register(&imx6sx_cpuidle_driver, NULL);