Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp2426332rdg; Mon, 16 Oct 2023 04:22:50 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH+rK2p03IGlA4aaLV7vBMn9lpeF6Y+gsppFD1D14sMVjBU0z0W4uiWd/enD1LIxYMlJHNl X-Received: by 2002:a05:6a20:8f03:b0:161:3120:e888 with SMTP id b3-20020a056a208f0300b001613120e888mr36463452pzk.46.1697455370521; Mon, 16 Oct 2023 04:22:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697455370; cv=none; d=google.com; s=arc-20160816; b=JGP/exbW8BzYbFHzYI3zBd0R1ks/rFcMGCKEs310WmcYXYnWyi3+AmcK9EVCH2t8ue +eCn5yvCHd12nekK/ChIfKrT4jepfxNNCp1RZko4NQs33Q/u4uD1tb2K+7qTcBJd1TEj 1XmbAMJ9DkUCdPey4G/wL0hKkkktdv1PPDp/NlJznKi3b5pjCWJk/UkOeEIGZGkx6KzW thZYabZVr+OkH2ub7W3Iv6XlG4rC//b0wEJgsbXHXuxvrLuWFS9NqXvCUmVzdK93T7Zg ndJf5gG/szySFUOgALCqVve6e4yb3CttHOhemRUqb/8SiZV23xf4XRZ8xgU98kTXURWc yFww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=Sjr3Yo1OvsfNQKWAtjwR72ePFEQKY2HGpo03ZYd6Ehs=; fh=/E6kTIH30ShAmFmGE10DzAERGDMIfeNtcO9SO4dJ5R0=; b=JyPQ4m9L1k8kl6OdxvnH/pOaVa4ODYMRoD21Hs2fYjp/0aaD+pPcay0T/jx95XG/d1 48GUe4UF/3Ef46Cm65/dNdiITnRxQ7PAbVCV+QElk73y8KZ6RsAhMZN5fcD6MGUHVNEd Vo+KfI/xKQ66ZtvQ0bFj7siD2ZX7fAx4TERnSvxZrh02v617LpcTlCBoOnCCKY6qbFFq zFdJPWSsIuP/V4LGEoV9pfz3tf/HAAqFzjl4aWDC+bbQnj+4639To02UyXlSSm09WHsc 33aJOtDPY441vjXj4ssp1brjsjmwIVzfx3wudllwcpJ35S+Fo1zTFd7l+AfW8M1TyAKm IoLw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id y23-20020a17090264d700b001c72c893ac9si10107399pli.104.2023.10.16.04.22.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Oct 2023 04:22:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 7912E80BC451; Mon, 16 Oct 2023 04:22:49 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233018AbjJPLWr (ORCPT + 99 others); Mon, 16 Oct 2023 07:22:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232986AbjJPLWq (ORCPT ); Mon, 16 Oct 2023 07:22:46 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9561EE3 for ; Mon, 16 Oct 2023 04:22:41 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qsLfu-0004ep-A3; Mon, 16 Oct 2023 13:22:18 +0200 Received: from [2a0a:edc0:2:b01:1d::c0] (helo=ptx.whiteo.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qsLfs-0024Qn-Mq; Mon, 16 Oct 2023 13:22:16 +0200 Received: from sha by ptx.whiteo.stw.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1qsLfs-00EjNr-Jp; Mon, 16 Oct 2023 13:22:16 +0200 Date: Mon, 16 Oct 2023 13:22:16 +0200 From: Sascha Hauer To: Chanwoo Choi Cc: linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Heiko Stuebner , Kyungmin Park , MyungJoo Ham , Will Deacon , Mark Rutland , kernel@pengutronix.de, Michael Riesch , Robin Murphy , Vincent Legoll , Rob Herring , Krzysztof Kozlowski , Conor Dooley , devicetree@vger.kernel.org, Sebastian Reichel Subject: Re: [PATCH v7 07/26] PM / devfreq: rockchip-dfi: introduce channel mask Message-ID: <20231016112216.GY3359458@pengutronix.de> References: <20230704093242.583575-1-s.hauer@pengutronix.de> <20230704093242.583575-8-s.hauer@pengutronix.de> <859b0091-e361-6060-2977-4aba13af418a@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <859b0091-e361-6060-2977-4aba13af418a@kernel.org> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-Accept-Language: de,en X-Accept-Content-Type: text/plain User-Agent: Mutt/1.10.1 (2018-07-13) X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: sha@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 16 Oct 2023 04:22:49 -0700 (PDT) On Sat, Oct 07, 2023 at 02:21:10AM +0900, Chanwoo Choi wrote: > Hi, > > On 23. 7. 4. 18:32, Sascha Hauer wrote: > > Different Rockchip SoC variants have a different number of channels. > > Introduce a channel mask to make the number of channels configurable > > from SoC initialization code. > > > > Reviewed-by: Sebastian Reichel > > Signed-off-by: Sascha Hauer > > --- > > drivers/devfreq/event/rockchip-dfi.c | 23 +++++++++++++++++------ > > 1 file changed, 17 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/devfreq/event/rockchip-dfi.c b/drivers/devfreq/event/rockchip-dfi.c > > index 126bb744645b6..82de24a027579 100644 > > --- a/drivers/devfreq/event/rockchip-dfi.c > > +++ b/drivers/devfreq/event/rockchip-dfi.c > > @@ -18,10 +18,11 @@ > > #include > > #include > > #include > > +#include > > > > #include > > > > -#define RK3399_DMC_NUM_CH 2 > > +#define DMC_MAX_CHANNELS 2 > > > > /* DDRMON_CTRL */ > > #define DDRMON_CTRL 0x04 > > @@ -44,7 +45,7 @@ struct dmc_count_channel { > > }; > > > > struct dmc_count { > > - struct dmc_count_channel c[RK3399_DMC_NUM_CH]; > > + struct dmc_count_channel c[DMC_MAX_CHANNELS]; > > }; > > > > /* > > @@ -61,6 +62,7 @@ struct rockchip_dfi { > > struct regmap *regmap_pmu; > > struct clk *clk; > > u32 ddr_type; > > + unsigned int channel_mask; > > }; > > > > static void rockchip_dfi_start_hardware_counter(struct devfreq_event_dev *edev) > > @@ -95,7 +97,9 @@ static void rockchip_dfi_read_counters(struct devfreq_event_dev *edev, struct dm > > u32 i; > > void __iomem *dfi_regs = dfi->regs; > > > > - for (i = 0; i < RK3399_DMC_NUM_CH; i++) { > > + for (i = 0; i < DMC_MAX_CHANNELS; i++) { > > + if (!(dfi->channel_mask & BIT(i))) > > + continue; > > count->c[i].access = readl_relaxed(dfi_regs + > > DDRMON_CH0_DFI_ACCESS_NUM + i * 20); > > count->c[i].total = readl_relaxed(dfi_regs + > > @@ -145,9 +149,14 @@ static int rockchip_dfi_get_event(struct devfreq_event_dev *edev, > > rockchip_dfi_read_counters(edev, &count); > > > > /* We can only report one channel, so find the busiest one */ > > - for (i = 0; i < RK3399_DMC_NUM_CH; i++) { > > - u32 a = count.c[i].access - last->c[i].access; > > - u32 t = count.c[i].total - last->c[i].total; > > + for (i = 0; i < DMC_MAX_CHANNELS; i++) { > > Instead of DMC_MAX_CHANNELS defintion, > you can initialize the max channel in each rkXXXX_dfi_init() like 'dfi->channel_count'. > It reduces the unnecessary loop by initializing the proper max channel. That is not easily possible. Some SoCs, eg the RK3588 have four channels, but not all channels are necessarily enabled it also might not be the first channels that are enabled. On a RK3588 the channel mask might for example be 0b0101. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |