Received: by 2002:ac8:156:0:b0:3e0:cd10:60c8 with SMTP id f22csp1672843qtg; Tue, 21 Mar 2023 20:19:39 -0700 (PDT) X-Google-Smtp-Source: AK7set+LxjzKyzPl87Syf0+EHvwN4tlV2RuWHddgscMQM0PklT8Amhb4tarZnRSFtCE8zZCDVyAu X-Received: by 2002:a50:ee0d:0:b0:4fb:2060:4c20 with SMTP id g13-20020a50ee0d000000b004fb20604c20mr5090028eds.31.1679455179742; Tue, 21 Mar 2023 20:19:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679455179; cv=none; d=google.com; s=arc-20160816; b=WX2zLASmJx+0eprHpsQ94sFmCWdVlC/9Hw4/BU28VC6zC66XPxqnw6S65AKJYsyKxI heJHwaNOF1PQ1KlJutZT636QVzO/oDZvtzwUDmsIR+oKWfUDuj4HQ3z1AQE/rEnI6/X4 7VDyL31zRKiV+E1GaS5kIukWIzs7f6mNhDvI8cccGAbg826vfg9AxUE4Xwg1+IipaRr8 htSaFGBTWai0i9yGrzvX1GDijgGcgc/dXEDvTFOzMt8Kk3tnENdjmA6lmLbqW92Sg2HN 9cH0YCPmpumBq2O/tws4SCR0hajWUCSSDbfInFTTJ2iR4eLk/uIQb2hA7NuKiWsZPyoC VWjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=iOVslyb3ECSxdMZf6FLVusKEfNHvzO8n/vSDL1Xs++E=; b=PejUbGDclLFLqtDHg9/+m2TjzqBUzAp543+++rrodoxWwwMjQHJMn0lLmekcF6/D6Z Hor3KzE9KjdgLhXzVV9YW+RB5H8WWAFAX8PIITA/W58okiGvlx5pRzukpMNYg4kv8TFK P64ZDOnhA2+FWRjXGFuiCn70D2iVJChhU9g/WcIAdzhsZ9++AJCtlHqXjIPxXq3R+xv6 gceVX0ZKZjDxKQEODOBENm9y7MmUdycAjcK5nUTQvw9dqkElptJpa8U0oD94/w25YUPU 7d5fxxWKBcjSacIEFIxQcYP/wCWET3+5Fn8Sti2PZ/aOEHLYQwNUrDGcugBGhw1M/eZ9 lG/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=K29+pa7n; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d17-20020a05640208d100b004fc2ee858f1si15269680edz.71.2023.03.21.20.19.14; Tue, 21 Mar 2023 20:19:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=K29+pa7n; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230072AbjCVDQV (ORCPT + 99 others); Tue, 21 Mar 2023 23:16:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229664AbjCVDQT (ORCPT ); Tue, 21 Mar 2023 23:16:19 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 249412884E; Tue, 21 Mar 2023 20:16:17 -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 9DA3861F24; Wed, 22 Mar 2023 03:16:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2EB1AC433D2; Wed, 22 Mar 2023 03:16:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679454976; bh=bnAyPFcvfn3yjJZ4/00BRfbbJTpOw/6izVsNwBXCpbs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=K29+pa7naURrYEosVvSHCQ3LqsBJA1T3maQuMRW4ZSb3xEtDOMByKpd3z+WKfv8OR VPlZbyMEd9M7y1uI+zZGOJSzs6CTHlui4QYp/etKwuDOLDP6gEvlSafZey4CEJMrj/ 2+T3X9IsyeGtZcdpDlOa8WOQBeIa98sFFKD+wjmjtDJmXEQtGcrFgJTYwPuF+0zAKd JU/T3/cn+3I1Em1qxZL5K9Dn8tZFFS3oh2/ugtOQjoyoTVKdly2PIuF5NFm5pxQYur IOhwiEvHScUjHCVKBDoKWJj5E2W4p7zrjV+i2WeZ3X+Dm40mt4i7UprbN1gRfD2gO4 UI1J2OP4eeTgA== Date: Tue, 21 Mar 2023 20:19:28 -0700 From: Bjorn Andersson To: Konrad Dybcio Cc: Andy Gross , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski , devicetree@vger.kernel.org Subject: Re: [PATCH RFT v2 11/14] clk: qcom: smd-rpm: Hook up PCNoC_0 keep_alive Message-ID: <20230322031928.vugzh4de2yecd5j2@ripper> References: <20230303-topic-rpmcc_sleep-v2-0-ae80a325fe94@linaro.org> <20230303-topic-rpmcc_sleep-v2-11-ae80a325fe94@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230303-topic-rpmcc_sleep-v2-11-ae80a325fe94@linaro.org> X-Spam-Status: No, score=-2.5 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 08, 2023 at 10:35:27PM +0100, Konrad Dybcio wrote: > 14 [1] of our 18 supported platforms need an active keepalive vote on > PCNoC_0 so as not to cause havoc on the entire SoC. Guarantee that. > Given that these are all clocks for peripheral (or peripheral & config) noc clocks, doesn't this just ensure that the running CPU is able to reach something on the peripheral bus? That is, are you encoding a active-only keep-alive interconnect path? Could we somehow express that using the interconnect driver on top instead? Regards, Bjorn > [1] there are 13 changes to driver data, but 8226 reuses 8974. > > Signed-off-by: Konrad Dybcio > --- > drivers/clk/qcom/clk-smd-rpm.c | 27 ++++++++++++++------------- > 1 file changed, 14 insertions(+), 13 deletions(-) > > diff --git a/drivers/clk/qcom/clk-smd-rpm.c b/drivers/clk/qcom/clk-smd-rpm.c > index 8e25b3d7d30c..a44b52bd0c83 100644 > --- a/drivers/clk/qcom/clk-smd-rpm.c > +++ b/drivers/clk/qcom/clk-smd-rpm.c > @@ -500,6 +500,7 @@ DEFINE_CLK_SMD_RPM(aggre1_noc, QCOM_SMD_RPM_AGGR_CLK, 1); > DEFINE_CLK_SMD_RPM(aggre2_noc, QCOM_SMD_RPM_AGGR_CLK, 2); > > DEFINE_CLK_SMD_RPM_BUS(pcnoc, 0); > +DEFINE_CLK_SMD_RPM_BUS_KEEP_ALIVE(pcnoc, 0); > DEFINE_CLK_SMD_RPM_BUS(snoc, 1); > DEFINE_CLK_SMD_RPM_BUS(sysmmnoc, 2); > DEFINE_CLK_SMD_RPM_BUS(cnoc, 2); > @@ -558,7 +559,7 @@ DEFINE_CLK_SMD_RPM_XO_BUFFER(div_clk3, 13, 19200000); > > static struct clk_smd_rpm *msm8909_clks[] = { > [RPM_SMD_PCNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_SNOC_CLK] = &clk_smd_rpm_bus_1_snoc_clk, > [RPM_SMD_SNOC_A_CLK] = &clk_smd_rpm_bus_1_snoc_a_clk, > [RPM_SMD_BIMC_CLK] = &clk_smd_rpm_bimc_clk, > @@ -592,7 +593,7 @@ static const struct rpm_smd_clk_desc rpm_clk_msm8909 = { > > static struct clk_smd_rpm *msm8916_clks[] = { > [RPM_SMD_PCNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_SNOC_CLK] = &clk_smd_rpm_bus_1_snoc_clk, > [RPM_SMD_SNOC_A_CLK] = &clk_smd_rpm_bus_1_snoc_a_clk, > [RPM_SMD_BIMC_CLK] = &clk_smd_rpm_bimc_clk, > @@ -626,7 +627,7 @@ static struct clk_smd_rpm *msm8936_clks[] = { > [RPM_SMD_XO_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo, > [RPM_SMD_XO_A_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo_a, > [RPM_SMD_PCNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_SNOC_CLK] = &clk_smd_rpm_bus_1_snoc_clk, > [RPM_SMD_SNOC_A_CLK] = &clk_smd_rpm_bus_1_snoc_a_clk, > [RPM_SMD_BIMC_CLK] = &clk_smd_rpm_bimc_clk, > @@ -660,7 +661,7 @@ static const struct rpm_smd_clk_desc rpm_clk_msm8936 = { > > static struct clk_smd_rpm *msm8974_clks[] = { > [RPM_SMD_PNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_SNOC_CLK] = &clk_smd_rpm_bus_1_snoc_clk, > [RPM_SMD_SNOC_A_CLK] = &clk_smd_rpm_bus_1_snoc_a_clk, > [RPM_SMD_CNOC_CLK] = &clk_smd_rpm_bus_2_cnoc_clk, > @@ -712,7 +713,7 @@ static struct clk_smd_rpm *msm8976_clks[] = { > [RPM_SMD_XO_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo, > [RPM_SMD_XO_A_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo_a, > [RPM_SMD_PCNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_SNOC_CLK] = &clk_smd_rpm_bus_1_snoc_clk, > [RPM_SMD_SNOC_A_CLK] = &clk_smd_rpm_bus_1_snoc_a_clk, > [RPM_SMD_BIMC_CLK] = &clk_smd_rpm_bimc_clk, > @@ -746,7 +747,7 @@ static struct clk_smd_rpm *msm8992_clks[] = { > [RPM_SMD_XO_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo, > [RPM_SMD_XO_A_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo_a, > [RPM_SMD_PNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_OCMEMGX_CLK] = &clk_smd_rpm_ocmemgx_clk, > [RPM_SMD_OCMEMGX_A_CLK] = &clk_smd_rpm_ocmemgx_a_clk, > [RPM_SMD_BIMC_CLK] = &clk_smd_rpm_bimc_clk, > @@ -804,7 +805,7 @@ static struct clk_smd_rpm *msm8994_clks[] = { > [RPM_SMD_XO_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo, > [RPM_SMD_XO_A_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo_a, > [RPM_SMD_PNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_OCMEMGX_CLK] = &clk_smd_rpm_ocmemgx_clk, > [RPM_SMD_OCMEMGX_A_CLK] = &clk_smd_rpm_ocmemgx_a_clk, > [RPM_SMD_BIMC_CLK] = &clk_smd_rpm_bimc_clk, > @@ -864,7 +865,7 @@ static struct clk_smd_rpm *msm8996_clks[] = { > [RPM_SMD_XO_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo, > [RPM_SMD_XO_A_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo_a, > [RPM_SMD_PCNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_SNOC_CLK] = &clk_smd_rpm_bus_1_snoc_clk, > [RPM_SMD_SNOC_A_CLK] = &clk_smd_rpm_bus_1_snoc_a_clk, > [RPM_SMD_CNOC_CLK] = &clk_smd_rpm_bus_2_cnoc_clk, > @@ -918,7 +919,7 @@ static struct clk_smd_rpm *qcs404_clks[] = { > [RPM_SMD_QDSS_CLK] = &clk_smd_rpm_qdss_clk, > [RPM_SMD_QDSS_A_CLK] = &clk_smd_rpm_qdss_a_clk, > [RPM_SMD_PNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_SNOC_CLK] = &clk_smd_rpm_bus_1_snoc_clk, > [RPM_SMD_SNOC_A_CLK] = &clk_smd_rpm_bus_1_snoc_a_clk, > [RPM_SMD_BIMC_CLK] = &clk_smd_rpm_bimc_clk, > @@ -948,7 +949,7 @@ static struct clk_smd_rpm *msm8998_clks[] = { > [RPM_SMD_BIMC_CLK] = &clk_smd_rpm_bimc_clk, > [RPM_SMD_BIMC_A_CLK] = &clk_smd_rpm_bimc_a_clk, > [RPM_SMD_PCNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_SNOC_CLK] = &clk_smd_rpm_bus_1_snoc_clk, > [RPM_SMD_SNOC_A_CLK] = &clk_smd_rpm_bus_1_snoc_a_clk, > [RPM_SMD_CNOC_CLK] = &clk_smd_rpm_bus_2_cnoc_clk, > @@ -1010,7 +1011,7 @@ static struct clk_smd_rpm *sdm660_clks[] = { > [RPM_SMD_CNOC_CLK] = &clk_smd_rpm_bus_2_cnoc_clk, > [RPM_SMD_CNOC_A_CLK] = &clk_smd_rpm_bus_2_cnoc_a_clk, > [RPM_SMD_CNOC_PERIPH_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_CNOC_PERIPH_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_CNOC_PERIPH_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_BIMC_CLK] = &clk_smd_rpm_bimc_clk, > [RPM_SMD_BIMC_A_CLK] = &clk_smd_rpm_bimc_a_clk, > [RPM_SMD_MMSSNOC_AXI_CLK] = &clk_smd_rpm_mmssnoc_axi_rpm_clk, > @@ -1052,7 +1053,7 @@ static struct clk_smd_rpm *mdm9607_clks[] = { > [RPM_SMD_XO_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo, > [RPM_SMD_XO_A_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo_a, > [RPM_SMD_PCNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_BIMC_CLK] = &clk_smd_rpm_bimc_clk, > [RPM_SMD_BIMC_A_CLK] = &clk_smd_rpm_bimc_a_clk, > [RPM_SMD_QPIC_CLK] = &clk_smd_rpm_qpic_clk, > @@ -1074,7 +1075,7 @@ static struct clk_smd_rpm *msm8953_clks[] = { > [RPM_SMD_XO_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo, > [RPM_SMD_XO_A_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo_a, > [RPM_SMD_PCNOC_CLK] = &clk_smd_rpm_bus_0_pcnoc_clk, > - [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_clk, > + [RPM_SMD_PCNOC_A_CLK] = &clk_smd_rpm_bus_0_pcnoc_a_keep_alive_clk, > [RPM_SMD_SNOC_CLK] = &clk_smd_rpm_bus_1_snoc_clk, > [RPM_SMD_SNOC_A_CLK] = &clk_smd_rpm_bus_1_snoc_a_clk, > [RPM_SMD_BIMC_CLK] = &clk_smd_rpm_bimc_clk, > > -- > 2.39.2 >