From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 769E5C2BB84 for ; Mon, 7 Sep 2020 16:45:55 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E5B992080A for ; Mon, 7 Sep 2020 16:45:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="hf0mEsVd" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E5B992080A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=2qWultr6wCwUr+w3FrEPo/r1VxUl672Q8ZTa/blObCw=; b=hf0mEsVdGrTbXNhZgzJCHyH4R kn89hvlhb5x7Aiul2jXo1MpkYwFnrsNeydRffZAtOxKaL2k7+FTWs+kqeVz46kuTGNG/8mRjyEGlz bExFG1ruB2Z5JfoYluznRHifcl3Lz17d+amEcc55zXVK87PKXNASrOykO2KmYTvX+yz8tJIAVqGSb qNaaun5C1y+/WWPN9uaTwRr9VTvjFGQXeS8b8XQMn7d0/Z0GzT1iGXIqPiUmDEgf8cr7lds3RclNn B8kfCuNxxxnpaoXqEDrwHlEcP5gVqUk8UXhr8mdaAxEmvxKLf5BKgwCjYd3gBhdPABeXtV4x0HKVq y5FIYuSeA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kFKFV-0001y3-Lb; Mon, 07 Sep 2020 16:44:09 +0000 Received: from foss.arm.com ([217.140.110.172]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kFKFI-0001ss-Mx for linux-arm-kernel@lists.infradead.org; Mon, 07 Sep 2020 16:44:01 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id AEAF431B; Mon, 7 Sep 2020 09:43:55 -0700 (PDT) Received: from bogus (unknown [10.57.10.112]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0E2043F68F; Mon, 7 Sep 2020 09:43:53 -0700 (PDT) Date: Mon, 7 Sep 2020 17:43:51 +0100 From: Sudeep Holla To: Cristian Marussi Subject: Re: [PATCH v5 2/3] firmware: arm_scmi: Add SCMI System Power Control driver Message-ID: <20200907164351.GB3656@bogus> References: <20200819161002.26637-1-cristian.marussi@arm.com> <20200819161002.26637-3-cristian.marussi@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200819161002.26637-3-cristian.marussi@arm.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200907_124356_914722_E3A42127 X-CRM114-Status: GOOD ( 25.78 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sudeep Holla , lukasz.luba@arm.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Jonathan.Cameron@Huawei.com Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, Aug 19, 2020 at 05:10:01PM +0100, Cristian Marussi wrote: > Add an SCMI System Power control driver to handle platform's requests > carried by SYSTEM_POWER_STATE_NOTIFIER notifications: such platform > requested system power state transitions are handled accordingly, > gracefully or forcefully, depending on the notifications' message flags. > > Graceful requests are by default relayed to userspace using the same > Kernel API used to handle ACPI Shutdown bus events: alternatively, instead, > a few available module parameters can be used to tunnel instead such > requests to userspace via signals addressed to CAD pid. > > When handling graceful requests, grant userspace processes a maximum > (configurable) time to perform their duties and then revert to a forceful > transition, so avoiding completely timing out platform's maximum grace time > and hitting possible abrupt power-cuts. > > Signed-off-by: Cristian Marussi > ---- > V3 --> V4 > - fix alignment checkpatch issues > V2 --> V3 > - changed Kconfig to fix naming and defaulting to n > V1 --> V2 > - use common event enums > - introduced optioanl alternative signal based comms 2 userspace > --- > drivers/firmware/Kconfig | 12 + > drivers/firmware/arm_scmi/Makefile | 1 + > drivers/firmware/arm_scmi/driver.c | 1 + > .../firmware/arm_scmi/scmi_power_control.c | 389 ++++++++++++++++++ > 4 files changed, 403 insertions(+) > create mode 100644 drivers/firmware/arm_scmi/scmi_power_control.c > > diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig > index fbd785dd0513..a77545c08040 100644 > --- a/drivers/firmware/Kconfig > +++ b/drivers/firmware/Kconfig > @@ -40,6 +40,18 @@ config ARM_SCMI_POWER_DOMAIN > will be called scmi_pm_domain. Note this may needed early in boot > before rootfs may be available. > > +config ARM_SCMI_POWER_CONTROL > + bool "SCMI system power control driver" > + depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF) > + default n > + help > + This enables System Power control logic which binds system shutdown or > + reboot actions to SCMI System Power notifications generated by SCP > + firmware. > + > + Graceful requests' methods and timeout and can be configured using > + a few available module parameters. > + > config ARM_SCPI_PROTOCOL > tristate "ARM System Control and Power Interface (SCPI) Message Protocol" > depends on ARM || ARM64 || COMPILE_TEST > diff --git a/drivers/firmware/arm_scmi/Makefile b/drivers/firmware/arm_scmi/Makefile > index 643f2320f976..6a0e24f9e0b1 100644 > --- a/drivers/firmware/arm_scmi/Makefile > +++ b/drivers/firmware/arm_scmi/Makefile > @@ -7,3 +7,4 @@ scmi-transport-$(CONFIG_MAILBOX) += mailbox.o > scmi-transport-$(CONFIG_HAVE_ARM_SMCCC_DISCOVERY) += smc.o > scmi-protocols-y = base.o clock.o perf.o power.o reset.o sensors.o system.o > obj-$(CONFIG_ARM_SCMI_POWER_DOMAIN) += scmi_pm_domain.o > +obj-$(CONFIG_ARM_SCMI_POWER_CONTROL) += scmi_power_control.o > diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c > index f749af6e79fc..484b3f7126b5 100644 > --- a/drivers/firmware/arm_scmi/driver.c > +++ b/drivers/firmware/arm_scmi/driver.c > @@ -732,6 +732,7 @@ struct scmi_prot_devnames { > > static struct scmi_prot_devnames devnames[] = { > { SCMI_PROTOCOL_POWER, { "genpd" },}, > + { SCMI_PROTOCOL_SYSTEM, {"syspower" },}, ^ missing space Split the above into separate patch as it doesn't depend on new config and can be added without it. I plan to merge the scmi system protocol part for v5.10 and the above addition of device. We need to wait for more feedback on the driver front especially user notification part. -- Regards, Sudeep _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel