linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX
@ 2019-05-02 11:30 Fabio Estevam
  2019-05-02 12:13 ` Sébastien Szymanski
  2019-05-03  8:23 ` [PATCH] ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX [Klartext] Christoph Niedermaier
  0 siblings, 2 replies; 3+ messages in thread
From: Fabio Estevam @ 2019-05-02 11:30 UTC (permalink / raw)
  To: shawnguo
  Cc: cniedermaier, anson.huang, stable, linux-imx, kernel,
	Fabio Estevam, linux-arm-kernel

Since commit 1e434b703248 ("ARM: imx: update the cpu power up timing
setting on i.mx6sx") some characters loss is noticed on i.MX6ULL UART
as reported by Christoph Niedermaier.

The intention of such commit was to increase the SW2ISO field for i.MX6SX
only, but since cpuidle-imx6sx is also used on i.MX6UL/i.MX6ULL this caused
unintended side effects on other SoCs.

Fix this problem by keeping the original SW2ISO value for i.MX6UL/i.MX6ULL
and only increase SW2ISO in the i.MX6SX case.

Cc: stable@vger.kernel.org
Fixes: 1e434b703248 ("ARM: imx: update the cpu power up timing setting on i.mx6sx")
Reported-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
 arch/arm/mach-imx/cpuidle-imx6sx.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-imx/cpuidle-imx6sx.c b/arch/arm/mach-imx/cpuidle-imx6sx.c
index fd0053e47a15..57cb9c763222 100644
--- a/arch/arm/mach-imx/cpuidle-imx6sx.c
+++ b/arch/arm/mach-imx/cpuidle-imx6sx.c
@@ -15,6 +15,7 @@
 
 #include "common.h"
 #include "cpuidle.h"
+#include "hardware.h"
 
 static int imx6sx_idle_finish(unsigned long val)
 {
@@ -99,8 +100,12 @@ static struct cpuidle_driver imx6sx_cpuidle_driver = {
 	.safe_state_index = 0,
 };
 
+#define SW2ISO_ORIGINAL		0x2
+#define SW2ISO_IMX6SX		0xf
 int __init imx6sx_cpuidle_init(void)
 {
+	u32 sw2iso = SW2ISO_ORIGINAL;
+
 	imx6_set_int_mem_clk_lpm(true);
 	imx6_enable_rbc(false);
 	imx_gpc_set_l2_mem_power_in_lpm(false);
@@ -110,7 +115,9 @@ int __init imx6sx_cpuidle_init(void)
 	 * except for power up sw2iso which need to be
 	 * larger than LDO ramp up time.
 	 */
-	imx_gpc_set_arm_power_up_timing(0xf, 1);
+	if (cpu_is_imx6sx())
+		sw2iso = SW2ISO_IMX6SX;
+	imx_gpc_set_arm_power_up_timing(sw2iso, 1);
 	imx_gpc_set_arm_power_down_timing(1, 1);
 
 	return cpuidle_register(&imx6sx_cpuidle_driver, NULL);
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX
  2019-05-02 11:30 [PATCH] ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX Fabio Estevam
@ 2019-05-02 12:13 ` Sébastien Szymanski
  2019-05-03  8:23 ` [PATCH] ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX [Klartext] Christoph Niedermaier
  1 sibling, 0 replies; 3+ messages in thread
From: Sébastien Szymanski @ 2019-05-02 12:13 UTC (permalink / raw)
  To: Fabio Estevam, shawnguo
  Cc: cniedermaier, anson.huang, stable, linux-imx, kernel, linux-arm-kernel

On 5/2/19 1:30 PM, Fabio Estevam wrote:
> Since commit 1e434b703248 ("ARM: imx: update the cpu power up timing
> setting on i.mx6sx") some characters loss is noticed on i.MX6ULL UART
> as reported by Christoph Niedermaier.
> 
> The intention of such commit was to increase the SW2ISO field for i.MX6SX
> only, but since cpuidle-imx6sx is also used on i.MX6UL/i.MX6ULL this caused
> unintended side effects on other SoCs.
> 
> Fix this problem by keeping the original SW2ISO value for i.MX6UL/i.MX6ULL
> and only increase SW2ISO in the i.MX6SX case.
> 
> Cc: stable@vger.kernel.org
> Fixes: 1e434b703248 ("ARM: imx: update the cpu power up timing setting on i.mx6sx")
> Reported-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> ---
>  arch/arm/mach-imx/cpuidle-imx6sx.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-imx/cpuidle-imx6sx.c b/arch/arm/mach-imx/cpuidle-imx6sx.c
> index fd0053e47a15..57cb9c763222 100644
> --- a/arch/arm/mach-imx/cpuidle-imx6sx.c
> +++ b/arch/arm/mach-imx/cpuidle-imx6sx.c
> @@ -15,6 +15,7 @@
>  
>  #include "common.h"
>  #include "cpuidle.h"
> +#include "hardware.h"
>  
>  static int imx6sx_idle_finish(unsigned long val)
>  {
> @@ -99,8 +100,12 @@ static struct cpuidle_driver imx6sx_cpuidle_driver = {
>  	.safe_state_index = 0,
>  };
>  
> +#define SW2ISO_ORIGINAL		0x2
> +#define SW2ISO_IMX6SX		0xf
>  int __init imx6sx_cpuidle_init(void)
>  {
> +	u32 sw2iso = SW2ISO_ORIGINAL;
> +
>  	imx6_set_int_mem_clk_lpm(true);
>  	imx6_enable_rbc(false);
>  	imx_gpc_set_l2_mem_power_in_lpm(false);
> @@ -110,7 +115,9 @@ int __init imx6sx_cpuidle_init(void)
>  	 * except for power up sw2iso which need to be
>  	 * larger than LDO ramp up time.
>  	 */
> -	imx_gpc_set_arm_power_up_timing(0xf, 1);
> +	if (cpu_is_imx6sx())
> +		sw2iso = SW2ISO_IMX6SX;
> +	imx_gpc_set_arm_power_up_timing(sw2iso, 1);
>  	imx_gpc_set_arm_power_down_timing(1, 1);
>  
>  	return cpuidle_register(&imx6sx_cpuidle_driver, NULL);
> 

Tested-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>

Regards,

-- 
Sébastien Szymanski
Software engineer, Armadeus Systems
Tel: +33 (0)9 72 29 41 44
Fax: +33 (0)9 72 28 79 26

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [PATCH] ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX [Klartext]
  2019-05-02 11:30 [PATCH] ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX Fabio Estevam
  2019-05-02 12:13 ` Sébastien Szymanski
@ 2019-05-03  8:23 ` Christoph Niedermaier
  1 sibling, 0 replies; 3+ messages in thread
From: Christoph Niedermaier @ 2019-05-03  8:23 UTC (permalink / raw)
  To: Fabio Estevam, shawnguo
  Cc: linux-arm-kernel, stable, linux-imx, kernel, anson.huang

From: Fabio Estevam <festevam@gmail.com>
Sent: Thursday 2nd May 2019 13:30
> Since commit 1e434b703248 ("ARM: imx: update the cpu power up timing
> setting on i.mx6sx") some characters loss is noticed on i.MX6ULL UART
> as reported by Christoph Niedermaier.
> 
> The intention of such commit was to increase the SW2ISO field for i.MX6SX
> only, but since cpuidle-imx6sx is also used on i.MX6UL/i.MX6ULL this caused
> unintended side effects on other SoCs.
> 
> Fix this problem by keeping the original SW2ISO value for i.MX6UL/i.MX6ULL
> and only increase SW2ISO in the i.MX6SX case.
> 
> Cc: stable@vger.kernel.org
> Fixes: 1e434b703248 ("ARM: imx: update the cpu power up timing setting on
> i.mx6sx")
> Reported-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> ---
>  arch/arm/mach-imx/cpuidle-imx6sx.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-imx/cpuidle-imx6sx.c b/arch/arm/mach-imx/cpuidle-imx6sx.c
> index fd0053e47a15..57cb9c763222 100644
> --- a/arch/arm/mach-imx/cpuidle-imx6sx.c
> +++ b/arch/arm/mach-imx/cpuidle-imx6sx.c
> @@ -15,6 +15,7 @@
>  
>  #include "common.h"
>  #include "cpuidle.h"
> +#include "hardware.h"
>  
>  static int imx6sx_idle_finish(unsigned long val)
>  {
> @@ -99,8 +100,12 @@ static struct cpuidle_driver imx6sx_cpuidle_driver = {
>  .safe_state_index = 0,
>  };
>  
> +#define SW2ISO_ORIGINAL 0x2
> +#define SW2ISO_IMX6SX 0xf
>  int __init imx6sx_cpuidle_init(void)
>  {
> + u32 sw2iso = SW2ISO_ORIGINAL;
> +
>  imx6_set_int_mem_clk_lpm(true);
>  imx6_enable_rbc(false);
>  imx_gpc_set_l2_mem_power_in_lpm(false);
> @@ -110,7 +115,9 @@ int __init imx6sx_cpuidle_init(void)
>  * except for power up sw2iso which need to be
>  * larger than LDO ramp up time.
>  */
> - imx_gpc_set_arm_power_up_timing(0xf, 1);
> + if (cpu_is_imx6sx())
> + sw2iso = SW2ISO_IMX6SX;
> + imx_gpc_set_arm_power_up_timing(sw2iso, 1);
>  imx_gpc_set_arm_power_down_timing(1, 1);
>  
>  return cpuidle_register(&imx6sx_cpuidle_driver, NULL);
>

Tested-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>

Best regards,

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-05-03  8:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-02 11:30 [PATCH] ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX Fabio Estevam
2019-05-02 12:13 ` Sébastien Szymanski
2019-05-03  8:23 ` [PATCH] ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX [Klartext] Christoph Niedermaier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).