Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3626914pxj; Tue, 11 May 2021 08:28:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwLDrnU6hafaDzeK5dLkoVn17qvpd0vRbuVfrmTBhQYQqyV25qDGVOMfb3PhVB1HY5iznUK X-Received: by 2002:a19:8506:: with SMTP id h6mr20429259lfd.457.1620746887926; Tue, 11 May 2021 08:28:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620746887; cv=none; d=google.com; s=arc-20160816; b=0ay99FiO9n91DMCHUk6W8PAIt5OitnX7stSaIO9dZwDtr4nAne86fIfzSiI8UaLnpF WUUMrjAzniFmSKW3dXzCQuIbhME9MXF+ayJWLKhReh+jbrfKQF02KiTORFMZRVzbFqvg JhTUJ5ynOChXqIffpiv0brWLAM2zYhDPoy8Ps3hYUvg0TQJu/rmNbEl8i/uWpHi1XFJH vjhWlyNHAz5EKSkIbkDZMtxwkBiR4Kp0XFHL/Uh+v3d59HN8gV8nEXYOYIeraJbTIosQ Lfx7wxo3YJ+7LrymaTKGG/4C4wRJJmr7lAxFHfxpkNmZq51BXqF0gpm0q5PfbsoVtBJU VveQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=ADKRjjG+U6Cx+ubrJWYRmb4HSWDPh6DbS/6I/KaMcho=; b=rUeyiDbPgqjs9MYCUXtoANB7YKX7+4brHaMQj4hbyj3+JL1ZSuT3cUpUOTDiUfmeJj 6kVdrNTmSXAh8XjNNLrMhzKKFEFJUQfX70I2MShIM4ZqRtafjtWXUOD6kZiQfDKuejcN maozw53KH8TdvFqqdR+b1myVhUwMr5B0ycvCuJhZmVcw7qfh+JLMsTlmTQ2faV7H347O 4daGRRoTMgR3xz+ln5srS6zM4p9sF6TduKFRVaG8HXBlsqMC3LWKWC9bvjAurT3K962K v+rQhnwyk6glELTYRkpJXWDXGaaEv7beiLwPMgLvx9NYTlVgoHbYPa1jQuXe/DEzZPnF C0DQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=YHLePLdx; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e17si7303024ljl.541.2021.05.11.08.27.37; Tue, 11 May 2021 08:28:07 -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=@gmail.com header.s=20161025 header.b=YHLePLdx; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231826AbhEKPYm (ORCPT + 99 others); Tue, 11 May 2021 11:24:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32984 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231792AbhEKPYf (ORCPT ); Tue, 11 May 2021 11:24:35 -0400 Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 22584C061574; Tue, 11 May 2021 08:23:27 -0700 (PDT) Received: by mail-lf1-x12b.google.com with SMTP id h4so29287296lfv.0; Tue, 11 May 2021 08:23:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=ADKRjjG+U6Cx+ubrJWYRmb4HSWDPh6DbS/6I/KaMcho=; b=YHLePLdx2gwPUhEfq8XHinUFEUh6dL/DkYPtmtXq4EiSYAFDlZxmH890syxHI9UQ81 BDfUwOAlkdOmM76fZODHkf+ovx9/G7EVcZRzDt4ylC4PhppjPoa48vcInW8HtOvedrP+ AGXvmg5hjd4NNqZqhHG2iQNwKscF4/iAB25mrHNHQMRirU1kXlb+OhpVa7GWR2VYFFi0 qsIRl9v9E8bSiCXESOoiZ43GawZm5AQLFdDYLkGDRweUsEnFhM2Ip99SwwYuhV/qrpja rhX03dMsLjniXnh1jfX6eSK43LWWbENyYjF3xUixMCDyLQJGr/N4DMGvLsuhohrSbzJU rmWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=ADKRjjG+U6Cx+ubrJWYRmb4HSWDPh6DbS/6I/KaMcho=; b=mDA+rOiGEMC/PUyV3kMNE8opDCbWTRPKNj/YY4v4+M3tko97uUHuE9Ww7IgrX4aeq5 8H6iCto+FngMbtlfywIlNrT026wqfgprLqxHXRc6USKd7ypMHQAnVSuCV14cmDAUvfVW f6fZX3WKa4WMv4eGyGSfsgWoQTPmQkEHqdPMkO2i7SdEUM7h+X3tYcFrTgePVwBM7bY9 sSMhLnxGtOwtb4oh+E7QfHzAAeiXZ9Pl7tv1ZW/R3lnS1P4kFRAOjHOjzh9hEROsQ4rV ZvtTH+b0PGCYHz0MFpYtOU23ypHUY4CFSFESZyeyQn6PYPk/vfevm5IMXabrSmOSXo0+ OaLQ== X-Gm-Message-State: AOAM533vs5eLdsHWBF6s8xfuBOxD33RGM7oPyOp8bQTSu1NjSl88BWeJ RPHMaDi8Vey7u54SRBJpqz7pwbpH2SU= X-Received: by 2002:a05:6512:acc:: with SMTP id n12mr20637115lfu.408.1620746605520; Tue, 11 May 2021 08:23:25 -0700 (PDT) Received: from [192.168.2.145] (109-252-193-91.dynamic.spd-mgts.ru. [109.252.193.91]) by smtp.googlemail.com with ESMTPSA id k25sm148208lji.61.2021.05.11.08.23.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 11 May 2021 08:23:25 -0700 (PDT) Subject: Re: [PATCH v7 6/8] clk: tegra: cclk: Handle thermal DIV2 CPU frequency throttling To: =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= 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 References: <20210510231737.30313-1-digetx@gmail.com> <20210510231737.30313-7-digetx@gmail.com> <20210511144139.GB4413@qmqm.qmqm.pl> From: Dmitry Osipenko Message-ID: <04bc9e16-be7e-cf18-9fff-436dd063bf10@gmail.com> Date: Tue, 11 May 2021 18:23:24 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <20210511144139.GB4413@qmqm.qmqm.pl> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 11.05.2021 17:41, Michał Mirosław пишет: > 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. Hello Michał, GCC can't optimize that division. I'll wait for more comments and then update this patch in v8 with yours suggestion. Thank you for taking a look at the patches.