Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3588989pxj; Tue, 11 May 2021 07:43:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJztYXndXZ/WVkVdKclWsdhQJ0f95FRhQkAsoEuEk2NFKbZKJ9C+gnW3J7USs4T2s0GIwgv0 X-Received: by 2002:a17:906:3ed0:: with SMTP id d16mr8759558ejj.16.1620744228610; Tue, 11 May 2021 07:43:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620744228; cv=none; d=google.com; s=arc-20160816; b=OeztRqNBa9Ki6XsiHi7Unr+yZ0iA+nhdDQeBW/YHC7g30HXD09T9fcnGBevjeW5rsi 4j+hRrOEoYvKftaDcfv7N9IK9XSlHseGaWu/is0ejOep15hShCeu/nHQlpi08TIa6Yot pN9Ve8MdOyHUeEJr+kM1G+ZDFq6ac9hAylS17t8fG4lMzU+tUKCrwXjp3mKZKpj1NLU1 THMuiOyyRVBee/s7ZFE8FJ776ZNArUFEwcXs/FQQoY5ZNATcZPBLYaV+PEP2j0eHKrYr OJV6Mg0bGz52WbbSvzwEHrt37iq2gPA3qbWu9AbDuqctlV1Ig8m69o1eRGG4VJtZpqhC 74Dw== 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-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=JIlZxPLWSzWPXq/YXri3Vqjby+FjanXLskFQD40z/og=; b=gZtHykn8+U6QIWJ19a2NR5Rc98LU0107RB28yT/Kolwly1gx+dkZP4LRGnii7OBfce 8NgzsvUXx4D9ULYaTz2mZtKT5tx58Q/tj2mlaV8OtnbRZBYtU7ZdYSqtF8Pd+2GW1LHB RTEVtjUvJr47I49FGup+gnRR3OgnUFtB0LTxVS2g5hB002u6JLMQGxeU+7N4RHLUO/uM 3LC2V8oXXb7fvy3Aew7DtnWMrG/eW6Sho0YIcwT0BHuRv3MXXla+UJCGsbxG7/bEL87F tTWljHOdKTxfuzk4yT7ORLBWJ5T6qIjUegwRerjoLamEpo69993w3YZHl9o9KNl/7WqL b5VA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rere.qmqm.pl header.s=1 header.b=Sa2q+cby; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cw16si17068373ejb.337.2021.05.11.07.43.25; Tue, 11 May 2021 07:43:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@rere.qmqm.pl header.s=1 header.b=Sa2q+cby; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231776AbhEKOmu (ORCPT + 99 others); Tue, 11 May 2021 10:42:50 -0400 Received: from rere.qmqm.pl ([91.227.64.183]:42450 "EHLO rere.qmqm.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231154AbhEKOmt (ORCPT ); Tue, 11 May 2021 10:42:49 -0400 Received: from remote.user (localhost [127.0.0.1]) by rere.qmqm.pl (Postfix) with ESMTPSA id 4Ffgbm5xsrz9C; Tue, 11 May 2021 16:41:40 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1; t=1620744101; bh=alDLovz9iqFt3O77cStCTYCIAdPi55MO/8EF8bUpQ3s=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Sa2q+cby28kKsaAx3hfbOXDavD4tPAJ9t3BYIMh4qRzvK4tTH+4BvZjUH/LVk+SFK PGTKiUzPvgWG1A18jyRLp7kQRFJJmSLmD9SO9WsA6Lonv8fkU+swRmkbLlux5G0FiM TILAT+Y75EbkFvlDTGN27R/4XKbXpO+csCT7XyD7xb3NChIQ2vpDYQR9x4Jjh5wwXi mLmFdUY3D8yVk9l1pt4BANuU8Y5malxWuP0dQFZopsgd+KH+bfJK6bwvFAHlWyepNY x7N1B/wGyn3d3ep/Mh2DeNHlWwuX5M3JwoIegv59AkyUfFQxSOJMtODkuJVDsknMyT tUZ3ykevttXVQ== X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.2 at mail Date: Tue, 11 May 2021 16:41:39 +0200 From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= To: Dmitry Osipenko Cc: Thierry Reding , Jonathan Hunter , Peter De Schrijver , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Rob Herring , linux-tegra@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: Re: [PATCH v7 6/8] clk: tegra: cclk: Handle thermal DIV2 CPU frequency throttling Message-ID: <20210511144139.GB4413@qmqm.qmqm.pl> References: <20210510231737.30313-1-digetx@gmail.com> <20210510231737.30313-7-digetx@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210510231737.30313-7-digetx@gmail.com> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 11, 2021 at 02:17:35AM +0300, Dmitry Osipenko wrote: > Check whether thermal DIV2 throttle is active in order to report > the CPU frequency properly. This very useful for userspace tools > like cpufreq-info which show actual frequency asserted from hardware. > > Signed-off-by: Dmitry Osipenko > --- > drivers/clk/tegra/clk-tegra-super-cclk.c | 16 ++++++++++++++-- > drivers/clk/tegra/clk-tegra30.c | 2 +- > 2 files changed, 15 insertions(+), 3 deletions(-) > > diff --git a/drivers/clk/tegra/clk-tegra-super-cclk.c b/drivers/clk/tegra/clk-tegra-super-cclk.c > index a03119c30456..f75822b71d0e 100644 > --- a/drivers/clk/tegra/clk-tegra-super-cclk.c > +++ b/drivers/clk/tegra/clk-tegra-super-cclk.c > @@ -25,6 +25,8 @@ > > #define SUPER_CDIV_ENB BIT(31) > > +#define TSENSOR_SLOWDOWN BIT(23) > + > static struct tegra_clk_super_mux *cclk_super; > static bool cclk_on_pllx; > > @@ -47,10 +49,20 @@ static int cclk_super_set_rate(struct clk_hw *hw, unsigned long rate, > static unsigned long cclk_super_recalc_rate(struct clk_hw *hw, > unsigned long parent_rate) > { > + struct tegra_clk_super_mux *super = to_clk_super_mux(hw); > + u32 val = readl_relaxed(super->reg); > + unsigned int div2; > + > + /* check whether thermal throttling is active */ > + if (val & TSENSOR_SLOWDOWN) > + div2 = 2; > + else > + div2 = 1; > + > if (cclk_super_get_parent(hw) == PLLX_INDEX) > - return parent_rate; > + return parent_rate / div2; > > - return tegra_clk_super_ops.recalc_rate(hw, parent_rate); > + return tegra_clk_super_ops.recalc_rate(hw, parent_rate) / div2; > } Could you check if the compiler can optimize out the division? I know this is a slow path, but nevertheless the 'shr' version would be the same amount of source code. Best Regrads Micha? Miros?aw