From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754650AbdBUSTN (ORCPT ); Tue, 21 Feb 2017 13:19:13 -0500 Received: from foss.arm.com ([217.140.101.70]:36088 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932165AbdBUSS6 (ORCPT ); Tue, 21 Feb 2017 13:18:58 -0500 Date: Tue, 21 Feb 2017 18:18:49 +0000 From: Mark Rutland To: Geert Uytterhoeven Cc: Sudeep Holla , Pavel Machek , Geert Uytterhoeven , Lorenzo Pieralisi , Lina Iyer , John Stultz , Thomas Gleixner , "Rafael J . Wysocki" , Len Brown , Rob Herring , Magnus Damm , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Linux-Renesas , Linux PM list , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH/RFC 3/6] drivers: firmware: psci: Implement shallow suspend mode Message-ID: <20170221181849.GG8605@leverpostej> References: <1487622809-25127-1-git-send-email-geert+renesas@glider.be> <1487622809-25127-4-git-send-email-geert+renesas@glider.be> <20170221110712.GB5021@amd> <20170221172012.GD8605@leverpostej> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Tue, Feb 21, 2017 at 07:06:04PM +0100, Geert Uytterhoeven wrote: > On Tue, Feb 21, 2017 at 6:20 PM, Mark Rutland wrote: > > On Tue, Feb 21, 2017 at 05:32:50PM +0100, Geert Uytterhoeven wrote: > >> How can Linux know if using "deep" suspend will allow to wake-up the system > >> according to configured wake-up sources, or not? > > > > My understanding is that if a device can wake the system from > > PSCI_SYSTEM_SUSPEND, it should be described in the DT as a wakeup source > > [1]. So we should be able to determine the set of devices which can wake > > the system from a suspend. We shouldn't assume that other devices can > > (though I don't precisely what we do currently). > > > > Otherwise, where PSCI_CPU_SUSPEND, we'd expect that most devices > > (barring cpu-local timers) can wake up CPUs, and hence the system, by > > raising an interrupt. > > > [1] Documentation/devicetree/bindings/power/wakeup-source.txt > > "wakeup-source" in DT is used as a mix of hardware description and software > policy. E.g. some keys on a keyboard may have it, others don't, while there's > not always a technical reason for that. > > Also, it doesn't specify from which suspend state it can wake-up. Joy. If we need to do something here, we should clarify the semantics of wakeup-source and/or introduce a property which is explicitly for the purpose of expressing HW capability to wake up from a specific power state. > On top of that, the Linux PM subsystem allows to configure wakeup by writing > "enabled" to a device's "wakeup" file in sysfs. Or you can use ethtool for > Wake-on-LAN. Sure; userspace can always do something silly here. As I mentioned in my other reply, we could/should add an interface to allow userspace to determine if it has a guaranteed wakeup, which would allow us to do the right thing. Thanks, Mark. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Rutland Subject: Re: [PATCH/RFC 3/6] drivers: firmware: psci: Implement shallow suspend mode Date: Tue, 21 Feb 2017 18:18:49 +0000 Message-ID: <20170221181849.GG8605@leverpostej> References: <1487622809-25127-1-git-send-email-geert+renesas@glider.be> <1487622809-25127-4-git-send-email-geert+renesas@glider.be> <20170221110712.GB5021@amd> <20170221172012.GD8605@leverpostej> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-renesas-soc-owner@vger.kernel.org To: Geert Uytterhoeven Cc: Sudeep Holla , Pavel Machek , Geert Uytterhoeven , Lorenzo Pieralisi , Lina Iyer , John Stultz , Thomas Gleixner , "Rafael J . Wysocki" , Len Brown , Rob Herring , Magnus Damm , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Linux-Renesas , Linux PM list , "linux-kernel@vger.kernel.org" List-Id: devicetree@vger.kernel.org Hi, On Tue, Feb 21, 2017 at 07:06:04PM +0100, Geert Uytterhoeven wrote: > On Tue, Feb 21, 2017 at 6:20 PM, Mark Rutland wrote: > > On Tue, Feb 21, 2017 at 05:32:50PM +0100, Geert Uytterhoeven wrote: > >> How can Linux know if using "deep" suspend will allow to wake-up the system > >> according to configured wake-up sources, or not? > > > > My understanding is that if a device can wake the system from > > PSCI_SYSTEM_SUSPEND, it should be described in the DT as a wakeup source > > [1]. So we should be able to determine the set of devices which can wake > > the system from a suspend. We shouldn't assume that other devices can > > (though I don't precisely what we do currently). > > > > Otherwise, where PSCI_CPU_SUSPEND, we'd expect that most devices > > (barring cpu-local timers) can wake up CPUs, and hence the system, by > > raising an interrupt. > > > [1] Documentation/devicetree/bindings/power/wakeup-source.txt > > "wakeup-source" in DT is used as a mix of hardware description and software > policy. E.g. some keys on a keyboard may have it, others don't, while there's > not always a technical reason for that. > > Also, it doesn't specify from which suspend state it can wake-up. Joy. If we need to do something here, we should clarify the semantics of wakeup-source and/or introduce a property which is explicitly for the purpose of expressing HW capability to wake up from a specific power state. > On top of that, the Linux PM subsystem allows to configure wakeup by writing > "enabled" to a device's "wakeup" file in sysfs. Or you can use ethtool for > Wake-on-LAN. Sure; userspace can always do something silly here. As I mentioned in my other reply, we could/should add an interface to allow userspace to determine if it has a guaranteed wakeup, which would allow us to do the right thing. Thanks, Mark. From mboxrd@z Thu Jan 1 00:00:00 1970 From: mark.rutland@arm.com (Mark Rutland) Date: Tue, 21 Feb 2017 18:18:49 +0000 Subject: [PATCH/RFC 3/6] drivers: firmware: psci: Implement shallow suspend mode In-Reply-To: References: <1487622809-25127-1-git-send-email-geert+renesas@glider.be> <1487622809-25127-4-git-send-email-geert+renesas@glider.be> <20170221110712.GB5021@amd> <20170221172012.GD8605@leverpostej> Message-ID: <20170221181849.GG8605@leverpostej> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi, On Tue, Feb 21, 2017 at 07:06:04PM +0100, Geert Uytterhoeven wrote: > On Tue, Feb 21, 2017 at 6:20 PM, Mark Rutland wrote: > > On Tue, Feb 21, 2017 at 05:32:50PM +0100, Geert Uytterhoeven wrote: > >> How can Linux know if using "deep" suspend will allow to wake-up the system > >> according to configured wake-up sources, or not? > > > > My understanding is that if a device can wake the system from > > PSCI_SYSTEM_SUSPEND, it should be described in the DT as a wakeup source > > [1]. So we should be able to determine the set of devices which can wake > > the system from a suspend. We shouldn't assume that other devices can > > (though I don't precisely what we do currently). > > > > Otherwise, where PSCI_CPU_SUSPEND, we'd expect that most devices > > (barring cpu-local timers) can wake up CPUs, and hence the system, by > > raising an interrupt. > > > [1] Documentation/devicetree/bindings/power/wakeup-source.txt > > "wakeup-source" in DT is used as a mix of hardware description and software > policy. E.g. some keys on a keyboard may have it, others don't, while there's > not always a technical reason for that. > > Also, it doesn't specify from which suspend state it can wake-up. Joy. If we need to do something here, we should clarify the semantics of wakeup-source and/or introduce a property which is explicitly for the purpose of expressing HW capability to wake up from a specific power state. > On top of that, the Linux PM subsystem allows to configure wakeup by writing > "enabled" to a device's "wakeup" file in sysfs. Or you can use ethtool for > Wake-on-LAN. Sure; userspace can always do something silly here. As I mentioned in my other reply, we could/should add an interface to allow userspace to determine if it has a guaranteed wakeup, which would allow us to do the right thing. Thanks, Mark.