diff mbox

ARM: imx6: add missing BM_CLPCR_BYPASS_PMIC_READY setting for imx6sx

Message ID 1471881205-6389-1-git-send-email-Anson.Huang@nxp.com
State New
Headers show

Commit Message

Anson Huang Aug. 22, 2016, 3:53 p.m. UTC
i.MX6SX has bypass PMIC ready function, as this function
is normally NOT enabled on the board design, so we need
to bypass the PMIC ready pin check during DSM mode resume
flow, otherwise, the internal DSM resume logic will be
waiting for this signal to be ready forever and cause
resume fail.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
---
 arch/arm/mach-imx/pm-imx6.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Peter Chen Aug. 22, 2016, 8:26 a.m. UTC | #1
>i.MX6SX has bypass PMIC ready function, as this function is normally NOT enabled
>on the board design, so we need to bypass the PMIC ready pin check during DSM
>mode resume flow, otherwise, the internal DSM resume logic will be waiting for this
>signal to be ready forever and cause resume fail.
>
>Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
>---
> arch/arm/mach-imx/pm-imx6.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c index
>67bab74..fe708e2 100644
>--- a/arch/arm/mach-imx/pm-imx6.c
>+++ b/arch/arm/mach-imx/pm-imx6.c
>@@ -310,7 +310,7 @@ int imx6_set_lpm(enum mxc_cpu_pwr_mode mode)
> 		val |= 0x3 << BP_CLPCR_STBY_COUNT;
> 		val |= BM_CLPCR_VSTBY;
> 		val |= BM_CLPCR_SBYOS;
>-		if (cpu_is_imx6sl())
>+		if (cpu_is_imx6sl() || cpu_is_imx6sx())
> 			val |= BM_CLPCR_BYPASS_PMIC_READY;
> 		if (cpu_is_imx6sl() || cpu_is_imx6sx() || cpu_is_imx6ul())
> 			val |= BM_CLPCR_BYP_MMDC_CH0_LPM_HS;
>--

With above changes, the suspend mode "mem" can work well.
Tested-by: Peter Chen <peter.chen@nxp.com>

You can consider add below tag:
Cc: <stable@vger.kernel.org> # 4.1+

Peter
Anson Huang Aug. 29, 2016, 11:37 p.m. UTC | #2
Ping..

Just a kind reminder in case this patch is missed, without this patch, i.MX6SX latest suspend/resume can NOT work.

Best Regards!
Anson Huang



> -----Original Message-----
> From: linux-arm-kernel [mailto:linux-arm-kernel-bounces@lists.infradead.org]
> On Behalf Of Anson Huang
> Sent: 2016-08-22 11:53 PM
> To: linux-arm-kernel@lists.infradead.org
> Cc: Fabio Estevam <fabio.estevam@nxp.com>; Peter Chen
> <peter.chen@nxp.com>; shawnguo@kernel.org; kernel@pengutronix.de
> Subject: [PATCH] ARM: imx6: add missing BM_CLPCR_BYPASS_PMIC_READY
> setting for imx6sx
> 
> i.MX6SX has bypass PMIC ready function, as this function is normally NOT
> enabled on the board design, so we need to bypass the PMIC ready pin check
> during DSM mode resume flow, otherwise, the internal DSM resume logic will
> be waiting for this signal to be ready forever and cause resume fail.
> 
> Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> ---
>  arch/arm/mach-imx/pm-imx6.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c
> index 67bab74..fe708e2 100644
> --- a/arch/arm/mach-imx/pm-imx6.c
> +++ b/arch/arm/mach-imx/pm-imx6.c
> @@ -310,7 +310,7 @@ int imx6_set_lpm(enum mxc_cpu_pwr_mode mode)
>  		val |= 0x3 << BP_CLPCR_STBY_COUNT;
>  		val |= BM_CLPCR_VSTBY;
>  		val |= BM_CLPCR_SBYOS;
> -		if (cpu_is_imx6sl())
> +		if (cpu_is_imx6sl() || cpu_is_imx6sx())
>  			val |= BM_CLPCR_BYPASS_PMIC_READY;
>  		if (cpu_is_imx6sl() || cpu_is_imx6sx() || cpu_is_imx6ul())
>  			val |= BM_CLPCR_BYP_MMDC_CH0_LPM_HS;
> --
> 1.9.1
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Shawn Guo Aug. 30, 2016, 11:26 a.m. UTC | #3
On Mon, Aug 29, 2016 at 11:37:27PM +0000, Yongcai Huang wrote:
> Ping..
> 
> Just a kind reminder in case this patch is missed, without this patch, i.MX6SX latest suspend/resume can NOT work.
> 
> Best Regards!
> Anson Huang
> 
> 
> 
> > -----Original Message-----
> > From: linux-arm-kernel [mailto:linux-arm-kernel-bounces@lists.infradead.org]
> > On Behalf Of Anson Huang
> > Sent: 2016-08-22 11:53 PM
> > To: linux-arm-kernel@lists.infradead.org
> > Cc: Fabio Estevam <fabio.estevam@nxp.com>; Peter Chen
> > <peter.chen@nxp.com>; shawnguo@kernel.org; kernel@pengutronix.de
> > Subject: [PATCH] ARM: imx6: add missing BM_CLPCR_BYPASS_PMIC_READY
> > setting for imx6sx
> > 
> > i.MX6SX has bypass PMIC ready function, as this function is normally NOT
> > enabled on the board design, so we need to bypass the PMIC ready pin check
> > during DSM mode resume flow, otherwise, the internal DSM resume logic will
> > be waiting for this signal to be ready forever and cause resume fail.
> > 
> > Signed-off-by: Anson Huang <Anson.Huang@nxp.com>

Applied as a fix and Cc-ed stable as requested by Peter.

Shawn
diff mbox

Patch

diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c
index 67bab74..fe708e2 100644
--- a/arch/arm/mach-imx/pm-imx6.c
+++ b/arch/arm/mach-imx/pm-imx6.c
@@ -310,7 +310,7 @@  int imx6_set_lpm(enum mxc_cpu_pwr_mode mode)
 		val |= 0x3 << BP_CLPCR_STBY_COUNT;
 		val |= BM_CLPCR_VSTBY;
 		val |= BM_CLPCR_SBYOS;
-		if (cpu_is_imx6sl())
+		if (cpu_is_imx6sl() || cpu_is_imx6sx())
 			val |= BM_CLPCR_BYPASS_PMIC_READY;
 		if (cpu_is_imx6sl() || cpu_is_imx6sx() || cpu_is_imx6ul())
 			val |= BM_CLPCR_BYP_MMDC_CH0_LPM_HS;