Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp937320ybp; Thu, 17 Oct 2019 05:53:20 -0700 (PDT) X-Google-Smtp-Source: APXvYqxQZ3w9cvYdceJHE5r3zfawsSZjIzAWZbX8jsyU3b7M4rNmTn7YFfslFdf/jBL2k0WLLl6D X-Received: by 2002:a17:907:20c8:: with SMTP id qq8mr3238593ejb.311.1571316800625; Thu, 17 Oct 2019 05:53:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571316800; cv=none; d=google.com; s=arc-20160816; b=DpEWBd5UMa6OmTeusEFq8Vs0+wZ0ZIhE3ya2BTnA4csjyDHSbTF12pWdd1Sr9TM0Ms YWtsriHKQUQUO7WhjeAIts7rPya894Kr76fdVBW4aB7ofvjMnU9hmQgmzCN12TTjkZKH 2UQvo6HjPhD+0eLC7C21LNCIjQw31yBO+zq4KNROP26O80pYoI73nKd5EflilB/ektUw VZv0xI6utuaN277IPGkQrRHunLtlqtd0Xddb/jPamSJFtsFs62R5mE63vUCdONuoDdeB J5IPTSbXhEg4Fad5JMzGldpS8Jh17Xh2H5LREYaN3UN9UWc2lQonKpqiVPI/BFJdhSAD aS8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:dkim-signature:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=nroN3FHoFwV3XA6q1YkfsgkTextLKDHjNycGp27ezdc=; b=Xmq10jHL1wm9WmzHb8EjMc4cNnINVpZ6eTleZ06bZKadxmJKtlaueA2TQYxhGukijW t2PQpnDX/DEc8VzLKrsub3Nh8R4wsKmCBAfQUI+8T5NnRflsWKLls9l8+chrdH5N4dlv hYEGGB8Ij8/Ztgu611lbRa9v+Ih7lRdCTIaUuBUxPs43S5RTVilF+hr3nf6CwAAWyQoQ CRL2K/MrW7NQ66A5a7wS8qJtxYkyFTxdcV7Od/kDG8Zl0JL9kDXAaQBHfDAJY+Vhm3eB hEugQP4DA+gZ4legNAKhNi/gxuVqtqkh2EY0nylAbF8Wikl6/b+JXMv5wvc83uiCOZFn GEoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=rAGYy4mB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y54si1636180edb.217.2019.10.17.05.52.57; Thu, 17 Oct 2019 05:53:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=rAGYy4mB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2436671AbfJPTVi (ORCPT + 99 others); Wed, 16 Oct 2019 15:21:38 -0400 Received: from hqemgate14.nvidia.com ([216.228.121.143]:3226 "EHLO hqemgate14.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2403782AbfJPTVh (ORCPT ); Wed, 16 Oct 2019 15:21:37 -0400 Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqemgate14.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Wed, 16 Oct 2019 12:21:41 -0700 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Wed, 16 Oct 2019 12:21:36 -0700 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Wed, 16 Oct 2019 12:21:36 -0700 Received: from DRHQMAIL107.nvidia.com (10.27.9.16) by HQMAIL111.nvidia.com (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 16 Oct 2019 19:21:36 +0000 Received: from tbergstrom-lnx.Nvidia.com (10.124.1.5) by DRHQMAIL107.nvidia.com (10.27.9.16) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 16 Oct 2019 19:21:35 +0000 Received: by tbergstrom-lnx.Nvidia.com (Postfix, from userid 1000) id 9AE2542807; Wed, 16 Oct 2019 22:21:33 +0300 (EEST) Date: Wed, 16 Oct 2019 22:21:33 +0300 From: Peter De Schrijver To: Dmitry Osipenko CC: Thierry Reding , Jonathan Hunter , "Rafael J. Wysocki" , "Daniel Lezcano" , , , Subject: Re: [PATCH v6 00/18] Consolidate and improve NVIDIA Tegra CPUIDLE driver(s) Message-ID: <20191016192133.GB26038@pdeschrijver-desktop.Nvidia.com> References: <20191015170015.1135-1-digetx@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20191015170015.1135-1-digetx@gmail.com> X-NVConfidentiality: public User-Agent: Mutt/1.9.4 (2018-02-28) X-Originating-IP: [10.124.1.5] X-ClientProxiedBy: HQMAIL101.nvidia.com (172.20.187.10) To DRHQMAIL107.nvidia.com (10.27.9.16) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1571253701; bh=nroN3FHoFwV3XA6q1YkfsgkTextLKDHjNycGp27ezdc=; h=X-PGP-Universal:Date:From:To:CC:Subject:Message-ID:References: MIME-Version:Content-Type:Content-Disposition:In-Reply-To: X-NVConfidentiality:User-Agent:X-Originating-IP:X-ClientProxiedBy; b=rAGYy4mB0DojFGY14D9t5hauU3YDyjKaDWJhazpYwapaylHOMWi9QJXublk3LJA2O mVVV+r0Nq5wtadsbN1yC5THHsPkRxV35P/1gPPkEIEPBOajMwjafab7MIb4yzvq7CK jzO2SzAWmwc5A+siqUD9bwWi5vFAyksQzsIQqveEFNBY8R3/g6+VYn2MbGHxR1sZ0l 55Tp5fjEsm4JXY9dyaXXsVGONqefshME6VNEKE7aJtww7vBcV6hg3LbJA49bg+qf5f yHFE9vIT1X92IxipB6xxW8M1yZxMP93Ih8okg1l5odob8/z+SOI/qGlDLUXb8zJk98 H4FzTWA6TrQwA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Oct 15, 2019 at 07:59:57PM +0300, Dmitry Osipenko wrote: > Hello, > > This series does the following: > > 1. Unifies Tegra20/30/114 drivers into a single driver and moves it out > into common drivers/cpuidle/ directory. > > 2. Enables CPU cluster power-down idling state on Tegra30. > > In the end there is a quite nice clean up of the Tegra CPUIDLE drivers > and of the Tegra's arch code in general. Please review, thanks! > > Changelog: > > v6: - Addressed request from Thierry Reding to change the way patches are > organized by making changes in a more incremental manner. > > - tegra_sleep_cpu() now checks for the secondary CPUs to be offline > in the "Make outer_disable() open-coded" patch. > > v5: - Rebased on a recent linux-next, fixed one minor conflict in Kconfig. > > - Improved commit's message of the "Support CPU cluster power-down state > on Tegra30" patch. > > - The "Support CPU cluster power-down state on Tegra30" patch is also > got split and now there is additional "Make outer_disable() open-coded" > patch. > > - Made minor cosmetic changes to the "Introduce unified driver for > NVIDIA Tegra SoCs" patch by improving error message and renaming > one variable. > > v4: - Fixed compilation with !CONFIG_CACHE_L2X0 (and tested that it still > works). > > - Replaced ktime_compare() with ktime_before() in the new driver, > for consistency. > > v3: - Addressed review comments that were made by Jon Hunter to v2 by > splitting patches into smaller (and simpler) chunks, better > documenting changes in the commit messages and using proper error > codes in the code. > > Warnings are replaced with a useful error messages in the code of > "Introduce unified driver for NVIDIA Tegra SoCs" patch. > > Secondary CPUs parking timeout increased to 100ms because I found > that it actually may happen to take more than 1ms if CPU is running > on a *very* low frequency. > > Added diagnostic messages that are reporting Flow Controller state > when CPU parking fails. > > Further polished cpuidle driver's code. > > The coupled state entering is now aborted if there is a pending SGI > (Software Generated Interrupt) because it will be lost after GIC's > power-cycling. Like it was done by the old Tegra20 CPUIDLE driver. > > v2: - Added patches to enable the new cpuidle driver in the defconfigs: > > ARM: multi_v7_defconfig: Enable Tegra cpuidle driver > ARM: tegra: Enable Tegra cpuidle driver in tegra_defconfig > > - Dropped patches that removed CPUIDLE_FLAG_TIMER_STOP from the idling > states because that flag actually doesn't have any negative effects, > but still is correct for the case of a local CPU timer on older Tegra > SoCs: > > cpuidle: tegra: Remove CPUIDLE_FLAG_TIMER_STOP from Tegra114/124 idle-state > cpuidle: tegra: Remove CPUIDLE_FLAG_TIMER_STOP from all states > > - The "Add unified driver for NVIDIA Tegra SoCs" patch got more polish. > Tegra30 and Terga114 states are now squashed into a single common C7 > state (following Parker TRM terminology, see 17.2.2.2 Power Management > States), more comments added, etc minor changes. It would be useful to switch the power state terminology to the one used for later chips: LP0 becomes SC7 LP1 becomes C1 LP2 becomes CC7 Meaning of these states is as follows C is a core state: C1 clock gating C2 not defined C3 not defined C4 not defined C5 not defined C6 not defined for ARM cores C7 power-gating CC is a CPU cluster C state: CC1 cluster clock gated CC2 not defined CC3 fmax@Vmin: not used prior to Tegra186 CC4: cluster retention: no longer supported CC5: not defined CC6: cluster power gating CC7: cluster rail gating SC is a System C state: SC1: not defined SC2: not defined SC3: not defined SC4: not defined SC5: not defined SC6: not defined SC7: VDD_SOC off Cheers, Peter.