diff mbox

[v2,4/4] ARM: mvebu: Warn about the wake-up sources not taken into account in suspend

Message ID 1435684740-24912-5-git-send-email-gregory.clement@free-electrons.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Gregory CLEMENT June 30, 2015, 5:19 p.m. UTC
On the Armada 370/XP/38x/39x SoCs when the suspend to ram feature is
supported, the SoC is shutdown and will be waken up by an external
micro-controller, so there is no possibility to setup wake-up source
from Linux. However, in standby mode, the SoCs stay powered and it is
possible to wake-up from any interrupt sources. As, when user decide to
setup a wake-up source, there is no way to know if they will be
wake-up source from suspend or from standby, then we chose allowing to
setup all the interrupt as wake-up sources.

The purpose of this patch is to inform the user that in suspend to ram
mode, the wake-up sources won't be taken into consideration.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
 arch/arm/mach-mvebu/pm.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Thomas Petazzoni July 1, 2015, 4:04 p.m. UTC | #1
Hello,

On Tue, 30 Jun 2015 19:19:00 +0200, Gregory CLEMENT wrote:
> On the Armada 370/XP/38x/39x SoCs when the suspend to ram feature is
> supported, the SoC is shutdown and will be waken up by an external

waken -> woken

> micro-controller, so there is no possibility to setup wake-up source

source -> sources

> from Linux. However, in standby mode, the SoCs stay powered and it is

stay powered -> stays powered on

> possible to wake-up from any interrupt sources. As, when user decide to
> setup a wake-up source, there is no way to know if they will be
> wake-up source from suspend or from standby, then we chose allowing to
> setup all the interrupt as wake-up sources.

Hum. "Since when the users configures the enabled wake-up sources there
is no way to know if the user will be doing suspend to RAM or standby,
we just allow all wake-up sources to be enabled, and only warn when
entering suspend to RAM".

> diff --git a/arch/arm/mach-mvebu/pm.c b/arch/arm/mach-mvebu/pm.c
> index 264073a777d8..4402dcfa7c56 100644
> --- a/arch/arm/mach-mvebu/pm.c
> +++ b/arch/arm/mach-mvebu/pm.c
> @@ -235,6 +235,7 @@ static int mvebu_pm_enter(suspend_state_t state)
>  		cpu_do_idle();
>  		break;
>  	case PM_SUSPEND_MEM:
> +		pr_warn("None of the wakeup sources will be taken into account in suspend to ram\n");

We already had some discussion about this, and I believe this continue
to be confusing: there are some wake-up sources taken into account when
in suspend to RAM: the special button used by the micro-controller. It
is indeed not a wake-up source in the Linux sense, but it is still a
wake-up source. With such a message, the user may believe that there is
simply no way of resuming the platform.

Maybe just:

	pr_warn("Entering suspend to RAM. Only special wake-up sources will resume the system\n");

Best regards,

Thomas
Gregory CLEMENT July 3, 2015, 9:55 a.m. UTC | #2
Thanks,

Gregory
On 01/07/2015 18:04, Thomas Petazzoni wrote:
> Hello,
> 
> On Tue, 30 Jun 2015 19:19:00 +0200, Gregory CLEMENT wrote:
>> On the Armada 370/XP/38x/39x SoCs when the suspend to ram feature is
>> supported, the SoC is shutdown and will be waken up by an external
> 
> waken -> woken
OK

> 
>> micro-controller, so there is no possibility to setup wake-up source
> 
> source -> sources
OK
> 
>> from Linux. However, in standby mode, the SoCs stay powered and it is
> 
> stay powered -> stays powered on

SoCs are plural (but maybe there is a special rule for acronym). However
to be more coherent I will also make the previous SoC plural too.


> 
>> possible to wake-up from any interrupt sources. As, when user decide to
>> setup a wake-up source, there is no way to know if they will be
>> wake-up source from suspend or from standby, then we chose allowing to
>> setup all the interrupt as wake-up sources.
> 
> Hum. "Since when the users configures the enabled wake-up sources there
> is no way to know if the user will be doing suspend to RAM or standby,
> we just allow all wake-up sources to be enabled, and only warn when
> entering suspend to RAM".
OK

> 
>> diff --git a/arch/arm/mach-mvebu/pm.c b/arch/arm/mach-mvebu/pm.c
>> index 264073a777d8..4402dcfa7c56 100644
>> --- a/arch/arm/mach-mvebu/pm.c
>> +++ b/arch/arm/mach-mvebu/pm.c
>> @@ -235,6 +235,7 @@ static int mvebu_pm_enter(suspend_state_t state)
>>  		cpu_do_idle();
>>  		break;
>>  	case PM_SUSPEND_MEM:
>> +		pr_warn("None of the wakeup sources will be taken into account in suspend to ram\n");
> 
> We already had some discussion about this, and I believe this continue
> to be confusing: there are some wake-up sources taken into account when
> in suspend to RAM: the special button used by the micro-controller. It
> is indeed not a wake-up source in the Linux sense, but it is still a
> wake-up source. With such a message, the user may believe that there is
> simply no way of resuming the platform.

Yes you're right, I was speak about the linux wakeup source, but it is
confusing for a "standard" user.

> 
> Maybe just:
> 
> 	pr_warn("Entering suspend to RAM. Only special wake-up sources will resume the system\n");
I will take this.

Thanks,

Gregory
diff mbox

Patch

diff --git a/arch/arm/mach-mvebu/pm.c b/arch/arm/mach-mvebu/pm.c
index 264073a777d8..4402dcfa7c56 100644
--- a/arch/arm/mach-mvebu/pm.c
+++ b/arch/arm/mach-mvebu/pm.c
@@ -235,6 +235,7 @@  static int mvebu_pm_enter(suspend_state_t state)
 		cpu_do_idle();
 		break;
 	case PM_SUSPEND_MEM:
+		pr_warn("None of the wakeup sources will be taken into account in suspend to ram\n");
 		return mvebu_enter_suspend();
 	default:
 		return -EINVAL;