From nobody Sun Dec 14 06:22:10 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0B84AC433F5 for ; Mon, 3 Oct 2022 07:29:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231193AbiJCH30 (ORCPT ); Mon, 3 Oct 2022 03:29:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55806 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231224AbiJCH2Q (ORCPT ); Mon, 3 Oct 2022 03:28:16 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3859310; Mon, 3 Oct 2022 00:19:34 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 43E5A60FC1; Mon, 3 Oct 2022 07:17:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 56466C433C1; Mon, 3 Oct 2022 07:17:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1664781442; bh=vV6J72lgCKZaW1qd9qddBQY27IkQVHpqMFO4vnJKAs8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RbNAxzqm3xKZzuwvBJ+MlRWuBlyTFzaoOYhP6Uipg7iaQmhTu409haxEMkKQ53nu+ cV4rKXttLmhMn4WNKsENOctfjJiKNiuiVOO88ald14SB9WUq2C2khSMQfWRt48gSIu ygkcB4u+7Dl70uDuMgX7hSXZDLJ6ohi6jz5adD1c= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Nicolas Pitre , Ulf Hansson , Peng Fan , Sudeep Holla Subject: [PATCH 5.15 21/83] Revert "firmware: arm_scmi: Add clock management to the SCMI power domain" Date: Mon, 3 Oct 2022 09:10:46 +0200 Message-Id: <20221003070722.518396983@linuxfoundation.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221003070721.971297651@linuxfoundation.org> References: <20221003070721.971297651@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ulf Hansson commit 3c6656337852e9f1a4079d172f3fddfbf00868f9 upstream. This reverts commit a3b884cef873 ("firmware: arm_scmi: Add clock management to the SCMI power domain"). Using the GENPD_FLAG_PM_CLK tells genpd to gate/ungate the consumer device's clock(s) during runtime suspend/resume through the PM clock API. More precisely, in genpd_runtime_resume() the clock(s) for the consumer device would become ungated prior to the driver-level ->runtime_resume() callbacks gets invoked. This behaviour isn't a good fit for all platforms/drivers. For example, a driver may need to make some preparations of its device in its ->runtime_resume() callback, like calling clk_set_rate() before the clock(s) should be ungated. In these cases, it's easier to let the clock(s) to be managed solely by the driver, rather than at the PM domain level. For these reasons, let's drop the use GENPD_FLAG_PM_CLK for the SCMI PM domain, as to enable it to be more easily adopted across ARM platforms. Fixes: a3b884cef873 ("firmware: arm_scmi: Add clock management to the SCMI = power domain") Cc: Nicolas Pitre Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson Tested-by: Peng Fan Acked-by: Sudeep Holla Link: https://lore.kernel.org/r/20220919122033.86126-1-ulf.hansson@linaro.o= rg Signed-off-by: Greg Kroah-Hartman --- drivers/firmware/arm_scmi/scmi_pm_domain.c | 26 ------------------------= -- 1 file changed, 26 deletions(-) --- a/drivers/firmware/arm_scmi/scmi_pm_domain.c +++ b/drivers/firmware/arm_scmi/scmi_pm_domain.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #include =20 @@ -53,27 +52,6 @@ static int scmi_pd_power_off(struct gene return scmi_pd_power(domain, false); } =20 -static int scmi_pd_attach_dev(struct generic_pm_domain *pd, struct device = *dev) -{ - int ret; - - ret =3D pm_clk_create(dev); - if (ret) - return ret; - - ret =3D of_pm_clk_add_clks(dev); - if (ret >=3D 0) - return 0; - - pm_clk_destroy(dev); - return ret; -} - -static void scmi_pd_detach_dev(struct generic_pm_domain *pd, struct device= *dev) -{ - pm_clk_destroy(dev); -} - static int scmi_pm_domain_probe(struct scmi_device *sdev) { int num_domains, i; @@ -124,10 +102,6 @@ static int scmi_pm_domain_probe(struct s scmi_pd->genpd.name =3D scmi_pd->name; scmi_pd->genpd.power_off =3D scmi_pd_power_off; scmi_pd->genpd.power_on =3D scmi_pd_power_on; - scmi_pd->genpd.attach_dev =3D scmi_pd_attach_dev; - scmi_pd->genpd.detach_dev =3D scmi_pd_detach_dev; - scmi_pd->genpd.flags =3D GENPD_FLAG_PM_CLK | - GENPD_FLAG_ACTIVE_WAKEUP; =20 pm_genpd_init(&scmi_pd->genpd, NULL, state =3D=3D SCMI_POWER_STATE_GENERIC_OFF);