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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 62B4AEB64DD for ; Thu, 15 Jun 2023 00:50:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236673AbjFOAuD (ORCPT ); Wed, 14 Jun 2023 20:50:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59912 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236439AbjFOAuD (ORCPT ); Wed, 14 Jun 2023 20:50:03 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 75F111BE3; Wed, 14 Jun 2023 17:50:02 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 123DB63516; Thu, 15 Jun 2023 00:50:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5FC5FC433C0; Thu, 15 Jun 2023 00:50:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686790201; bh=OnZsw9VGDNW6KuY0k3YjEaktjmpS1FKjNJp4If98TW8=; h=In-Reply-To:References:Subject:From:Cc:To:Date:From; b=UDrmucUciHwXzwjWwArsQuCkffUdTOgVRhSqtnrPIRZvOFFsVLsPsD9QkFw7DKtMJ SH3uIpaDkQpyhWlLAK2RaB675mcPTmkn7dP7O5yn4CTL2J1jhCEyCIu22+AsHw7zio ZrHMm6dAK2VZpbPBgOicl3oWAm0CPkvF/XzCLnLxzdHgJvghqgadwheEgECf5bsasn GgjLXruMqUQ0A19R6kk9ENHc25Ev8pI1dutg4emORyHtAmlOlMRnOkdqKJ2cMVbuoE iCmeE+jJpz2AxkX/1W5EYBZ5y6mVSzLHMCARPpCk4vOE6Etm4+eav2huj9QtbnnmJN RkgFI22hVSnCQ== Message-ID: <0764b5fda92acb995ffbd05c4b3d2b2f.sboyd@kernel.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable In-Reply-To: <20230526-topic-smd_icc-v6-0-263283111e66@linaro.org> References: <20230526-topic-smd_icc-v6-0-263283111e66@linaro.org> Subject: Re: [PATCH v6 00/22] Restructure RPM SMD ICC From: Stephen Boyd Cc: Marijn Suijten , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, Konrad Dybcio , Krzysztof Kozlowski , Dmitry Baryshkov , Stephan Gerhold To: Andy Gross , Bjorn Andersson , Conor Dooley , Evan Green , Georgi Djakov , Konrad Dybcio , Krzysztof Kozlowski , Leo Yan , Michael Turquette , Rob Herring Date: Wed, 14 Jun 2023 17:49:59 -0700 User-Agent: alot/0.10 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Quoting Konrad Dybcio (2023-06-14 11:04:19) > This series reshuffles things around, moving the management of SMD RPM > bus clocks to the interconnect framework where they belong. This helps > us solve a couple of issues: >=20 > 1. We can work towards unused clk cleanup of RPMCC without worrying > about it killing some NoC bus, resulting in the SoC dying. > Deasserting actually unused RPM clocks (among other things) will > let us achieve "true SoC-wide power collapse states", also known as > VDD_LOW and VDD_MIN. >=20 > 2. We no longer have to keep tons of quirky bus clock ifs in the icc > driver. You either have a RPM clock and call "rpm set rate" or you > have a single non-RPM clock (like AHB_CLK_SRC) or you don't have any. >=20 > 3. There's less overhead - instead of going through layers and layers of > the CCF, ratesetting comes down to calling max() and sending a single > RPM message. ICC is very very dynamic so that's a big plus. >=20 > The clocks still need to be vaguely described in the clk-smd-rpm driver, > as it gives them an initial kickoff, before actually telling RPM to > enable DVFS scaling. After RPM receives that command, all clocks that > have not been assigned a rate are considered unused and are shut down > in hardware, leading to the same issue as described in point 1. Why can't we move the enable of DVFS scaling call to the interconnect driver as well? We want the clk driver to not reference the interconnect resources at all.