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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4CA63C43334 for ; Thu, 21 Jul 2022 08:57:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc: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=HLL3M3x8kw3+FpKbHZeIF/XWSxRoKaKfHcALZkzdnVw=; b=lKkxRruhfMeDXX mN7c3PhZQpTXgKePiJFzn7l0cfaG0BIY8KoKKhnxzS0AdCOva23bl98BTQd/fM68hrBkE1oeXy135 gOBNrhGfRt53E1oBmBYviK2mc56mrXfotx2NwIDoa30AhHMmTZ67MvEl1URbEFLjAnF2RWYh8edZX dcBcMo776UMZ9BF7UrQHmjG7hQrLDIHvWdt69XXX+hU6/Ma70diBBvxKGxmXKDbmxPzCutsY0u9FQ CKh2vj+xn5vzszxX2ThiZFU0GPFXYG4pTp93RjxKzHAk7JK3lXJeFZF8AmAhytTZAzDqrdVN7UVI6 rLZ6t9jQ4S/lyaY5Gj8A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oERyP-002q0m-9j; Thu, 21 Jul 2022 08:55:57 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oERyK-002pti-CZ for linux-arm-kernel@lists.infradead.org; Thu, 21 Jul 2022 08:55:55 +0000 Received: by mail-ed1-x52e.google.com with SMTP id x91so1325524ede.1 for ; Thu, 21 Jul 2022 01:55:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=y52+vmlkRnvgFyCTIdVjgi2XLyCNtChwCyrrSaF4xEs=; b=JfScOhfOqzqLqsMNguyPz0pmtqPx00EBej7n3tTNiTELdECIuqhQFfdgfxv0NZANL6 fJHBfkEJAKFk4rovHbV7mrijRm9H5aWF9cBLWsIHOitso5dVjWiy2XozKo4+hV0MqAmt mNgaTsrlEcSahSI8zRaZEJpDBfjjMGPO7jIgBdUnSZex7WTQlFX9K3n7+zQmNajKEMRu F9FPjIDBrMF3Crz4neWe7RT80XgUh+SRBz5BD23hs5/YjGMXJLiMh7wXt+F0TY4YlsEp V3Yz7uwhK2GsLAG8wMmN0xZf0N11NN/fTBzc64C6eiDBhDhoV6Zqxkt1JYliOh/vlYiV pV2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=y52+vmlkRnvgFyCTIdVjgi2XLyCNtChwCyrrSaF4xEs=; b=ILgF++nw3ekIC0rirKqLPSTDiiIPd5s4xQpoSZblKso50v8s73iR5R7hTY7/ekEUAY Z3Jz3rJi+1RTj+hJ8l80nfuNUK2BdA0omI0dkADdWy854OKIWFpbq8s/pMWpI8s28Hc8 FsxtCyVFM+vYxgSg0QcST9wFlBcMcW5gcujmYSEg4D5kGWV3+qtl7ecQKXoDAlobEPF+ QcKI1klmIv2KVXZ848GviqVBre9DSF0IbHr6hdhZJ3qqRgnIeSebiTgp+pme4jzXIoJT 0BkfED/upfOwVNqHEAqh1RdNLzzIzyKKUSPw1C2s7SMQt/6xme2xSPq92tm1vrIT240C YJ6g== X-Gm-Message-State: AJIora81CLrjiPGMFFgQAthifTARmVO+HXASNi1KW/vCcbBujVgMetUU 1Qd48M+Rf4dPezSifGbuoIPASQ== X-Google-Smtp-Source: AGRyM1utn9lhUWfU5jFiySqjwbTTFY/S53Ue3qZ3Nt/lL522fet/Tr/Y0KsbrgjwndvTNOGyKyH5BQ== X-Received: by 2002:a05:6402:22c9:b0:43b:c529:7ee1 with SMTP id dm9-20020a05640222c900b0043bc5297ee1mr2760657edb.251.1658393748544; Thu, 21 Jul 2022 01:55:48 -0700 (PDT) Received: from blmsp ([2001:4090:a243:806e:25e7:daa:8208:ceb]) by smtp.gmail.com with ESMTPSA id wj22-20020a170907051600b0072af2460cd6sm611924ejb.30.2022.07.21.01.55.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Jul 2022 01:55:48 -0700 (PDT) Date: Thu, 21 Jul 2022 10:55:47 +0200 From: Markus Schneider-Pargmann To: Matthias Brugger Cc: Fabien Parent , Alexandre Bailon , linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 3/4] soc: mediatek: add support of MTK_SCPD_STRICT_BUSP cap Message-ID: <20220721085547.unr5cu4kywpugxmx@blmsp> References: <20220530204214.913251-1-fparent@baylibre.com> <20220530204214.913251-3-fparent@baylibre.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220721_015552_653132_78F1E952 X-CRM114-Status: GOOD ( 28.38 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 Hi Matthias, sorry, took a long time to respond. On Fri, Jun 17, 2022 at 04:20:10PM +0200, Matthias Brugger wrote: > > > On 30/05/2022 22:42, Fabien Parent wrote: > > From: Alexandre Bailon > > > > This adds support of MTK_SCPD_STRICT_BUSP cap. > > This is required by the mt8365, for the MM power domain. > > > > Please explain better waht this flag is doing. I will update the commit message as well. The flag basically tells the code that there is a strict bus protection policy in place which means that bus protect release must be before bus access. This is not on all platforms the case. > > > Signed-off-by: Alexandre Bailon > > Signed-off-by: Fabien Parent > > --- > > drivers/soc/mediatek/mtk-pm-domains.c | 37 ++++++++++++++++++++------- > > drivers/soc/mediatek/mtk-pm-domains.h | 1 + > > 2 files changed, 29 insertions(+), 9 deletions(-) > > > > diff --git a/drivers/soc/mediatek/mtk-pm-domains.c b/drivers/soc/mediatek/mtk-pm-domains.c > > index 90b91b3b19a8..beaa5785fda2 100644 > > --- a/drivers/soc/mediatek/mtk-pm-domains.c > > +++ b/drivers/soc/mediatek/mtk-pm-domains.c > > @@ -263,17 +263,36 @@ static int scpsys_power_on(struct generic_pm_domain *genpd) > > regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_ISO_BIT); > > regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RST_B_BIT); > > - ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks); > > - if (ret) > > - goto err_pwr_ack; > > I think it would help readability if we would enable the clocks only in the > case that MTK_SCPD_CAPS(pd, MTK_SCPD_STRICT_BUSP) is false. Then we would > only need to add the same if to the error path of err_disable_subsys_clks, > correct? I already rearranged the code to have a cleaner flow for v2. Thanks, Markus > > Regards, > Matthias > > > + if (MTK_SCPD_CAPS(pd, MTK_SCPD_STRICT_BUSP)) { > > + /* > > + * In few Mediatek platforms(e.g. MT6779), the bus protect > > + * policy is stricter, which leads to bus protect release must > > + * be prior to bus access. > > + */ > > + ret = scpsys_sram_enable(pd); > > + if (ret < 0) > > + goto err_pwr_ack; > > - ret = scpsys_sram_enable(pd); > > - if (ret < 0) > > - goto err_disable_subsys_clks; > > + ret = scpsys_bus_protect_disable(pd); > > + if (ret < 0) > > + goto err_pwr_ack; > > - ret = scpsys_bus_protect_disable(pd); > > - if (ret < 0) > > - goto err_disable_sram; > > + ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks); > > + if (ret < 0) > > + goto err_pwr_ack; > > + } else { > > + ret = clk_bulk_prepare_enable(pd->num_subsys_clks, pd->subsys_clks); > > + if (ret) > > + goto err_pwr_ack; > > + > > + ret = scpsys_sram_enable(pd); > > + if (ret < 0) > > + goto err_disable_subsys_clks; > > + > > + ret = scpsys_bus_protect_disable(pd); > > + if (ret < 0) > > + goto err_disable_sram; > > + } > > return 0; > > diff --git a/drivers/soc/mediatek/mtk-pm-domains.h b/drivers/soc/mediatek/mtk-pm-domains.h > > index a3955d960233..5347471bc3c4 100644 > > --- a/drivers/soc/mediatek/mtk-pm-domains.h > > +++ b/drivers/soc/mediatek/mtk-pm-domains.h > > @@ -8,6 +8,7 @@ > > #define MTK_SCPD_SRAM_ISO BIT(2) > > #define MTK_SCPD_KEEP_DEFAULT_OFF BIT(3) > > #define MTK_SCPD_DOMAIN_SUPPLY BIT(4) > > +#define MTK_SCPD_STRICT_BUSP BIT(5) > > #define MTK_SCPD_CAPS(_scpd, _x) ((_scpd)->data->caps & (_x)) > > #define SPM_VDE_PWR_CON 0x0210 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel