Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp1373614ybi; Sun, 30 Jun 2019 14:05:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqwNrnk0XDwc+GsDLvqqCamDh7g5A189g0Ae19j/jJxQn3QgwnIMjPdzcBiy1PWRmpm9WEav X-Received: by 2002:a63:4c14:: with SMTP id z20mr20679372pga.360.1561928743847; Sun, 30 Jun 2019 14:05:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561928743; cv=none; d=google.com; s=arc-20160816; b=nfJcFusCgBiAXCCCti8dXAR5SwYD3J2zBLX7OY8VosGH32ds6EhO7Tq3aRDfXhCB1G dYNjbcf5yvOP55rnm1gGidBRNHdO5GZB1KFAZTxgm5Bcs3zFIFC3JE1HqxL525c0PCnW UOLjWaR2kSUYqJMYgrKHNF4n/T0HIH2GjRCQZvwHGBPdsqY5Qwac9XFGt0c0n+Ko5q1a g/SipWSNJcfLt3LS476eMwlQWF3AagqN46JJSgyCiyFNjwN2as0XWUQkg0deUXFj71px nC1Y/Cg0nBWaYyjdbI2/55JWgWPdPdZrVVGmhDewIGs3xbG//+FBFfeDGX90b16eN376 97fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=+OvHoOucTtPtgMGupRgibL0AaI8RRb9BuEbjOandQO8=; b=IwPttDk7aEJMijSGh2898I8vdgHwutsNSJMDpOrqC0EzfDfGZF2HOkU0L1EP2+LcEM GKC0cKWiYr+ju0HM30Z71+1rypnseMmI9RIue55WW1kckPGy33tsk8MMykKLTCV78cot bsKpb5fEBZFSTQH0LnnUnI9D3sp5QZN4m4pMlt5FSxWt400QELfA65tTgmt8+8H6e36a lZ/N6qRccXttGn+/4Jo1rzvDq32uNrQVBqc17IXmCd/loAFuHQc9vHQ/pW0PowdUtSGj qPlpfH9DwdcwKTk372HU/HZxrQJgbIvwKTuwF0z/KhiACdRfejCLQ4UcNWcFXs90j37V S35w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rDbK7S2Y; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m12si9408118pfa.81.2019.06.30.14.05.28; Sun, 30 Jun 2019 14:05:43 -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=@gmail.com header.s=20161025 header.b=rDbK7S2Y; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727223AbfF3VFC (ORCPT + 99 others); Sun, 30 Jun 2019 17:05:02 -0400 Received: from mail-lf1-f67.google.com ([209.85.167.67]:34419 "EHLO mail-lf1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727168AbfF3VEy (ORCPT ); Sun, 30 Jun 2019 17:04:54 -0400 Received: by mail-lf1-f67.google.com with SMTP id y198so7349209lfa.1; Sun, 30 Jun 2019 14:04:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+OvHoOucTtPtgMGupRgibL0AaI8RRb9BuEbjOandQO8=; b=rDbK7S2YYJoIEfU4SJ2J9FsgAI8xbqlA+BBhF2cQh6Os6c655QCvniW9MjevmrsOsJ Ly44kRYJe2BK7NoQMKQ3NfMOAELjM/7oNQXu0lCpOuP6F3GRyMdNMOikoCD+HMJdmSWv /J4czIA33pLhjnpLRf489Pp9asxOpaP4xhqKZnxN/yUW0B4m4WjyfOwxfaCUkoUyoUM9 MWf2x4S8braSBcw9bgqCNGDo0aGViQY6BCbBT1CYrgKmwZR6oQcF6qcvAgoA3plPu4wO KIltgT2SU9qbD8yxPpFEmCyQm/akEcpeFZ5na4+yfR60Tfgrs17jvtVOme5XsDLs/2bq Gvog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+OvHoOucTtPtgMGupRgibL0AaI8RRb9BuEbjOandQO8=; b=f+k0RuE0OezGXH4xa1gJUQWsTGOLSnkeQpW2qGUuO6olWGNw9EHKqamEV0SakZK+Ln LXM44EAazwlmb/skkNIeEgJcY9rigXif+QIMj8J4c5++FeUb/KpT3sQBml8yHPkmc/3G nusp0Qrdjam9kVZkfSTCyTYhfA9vCgdHgZ64QnxgK2NuqMQhGi6hBhMdU+RbWhRmBtbX KpEv9Npsshc8jB+T48T/RZVv/bZCZqN5kP23Iecs5fPsf2FO69lEbZUOU1qLfXzidjoO uyiIl/1K8SBv8Z/l2cahKmwV0oyOxLqIAgx1yQ2YN0k/XQ0Ao666K1Kx9AkjCrVsuz2e /IRg== X-Gm-Message-State: APjAAAVWg3MSP2MvNcLoeg/H6DLiSMvpZNMwIrPy2jOtXyqaZXmGWJlF KxMwBz4SZNdYyX20kXI7g54= X-Received: by 2002:ac2:44a4:: with SMTP id c4mr5814412lfm.116.1561928691435; Sun, 30 Jun 2019 14:04:51 -0700 (PDT) Received: from localhost.localdomain (ppp79-139-233-208.pppoe.spdop.ru. [79.139.233.208]) by smtp.gmail.com with ESMTPSA id u9sm2221408lfb.38.2019.06.30.14.04.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 30 Jun 2019 14:04:50 -0700 (PDT) From: Dmitry Osipenko To: Rob Herring , Michael Turquette , Joseph Lo , Thierry Reding , Jonathan Hunter , Peter De Schrijver , Prashant Gaikwad , Stephen Boyd Cc: devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 14/15] ARM: tegra30: cpuidle: Don't enter LP2 on CPU0 when EMC runs off PLLP Date: Mon, 1 Jul 2019 00:00:18 +0300 Message-Id: <20190630210019.26914-15-digetx@gmail.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190630210019.26914-1-digetx@gmail.com> References: <20190630210019.26914-1-digetx@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Machine hangs after entering LP2 if EMC clock is running off the PLLP. Either hardware is touching PLLP during LP2, making it unstable, or there is a software bug somewhere around PLLP programming. Real reason is unknown, hence let's simply avoid LP2 for CPU0 for now to workaround the problem. Note that LP2 works fine when EMC is running off any other parent clock, LP1 is totally unaffected. Also note that there is no hang on LP2 if memory timing is set up for a higher rate (600MHz) when on PLLP, which makes this extra suspicious. Signed-off-by: Dmitry Osipenko --- arch/arm/mach-tegra/cpuidle-tegra30.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-tegra/cpuidle-tegra30.c b/arch/arm/mach-tegra/cpuidle-tegra30.c index c6128526877d..0f8da69ba5be 100644 --- a/arch/arm/mach-tegra/cpuidle-tegra30.c +++ b/arch/arm/mach-tegra/cpuidle-tegra30.c @@ -60,10 +60,15 @@ static bool tegra30_cpu_cluster_power_down(struct cpuidle_device *dev, struct cpuidle_driver *drv, int index) { - /* All CPUs entering LP2 is not working. + /* + * All CPUs entering LP2 is not working. * Don't let CPU0 enter LP2 when any secondary CPU is online. + * + * Machine hangs after entering LP2 if EMC is running off PLLP, + * reason is unknown. */ - if (num_online_cpus() > 1 || !tegra_cpu_rail_off_ready()) { + if (num_online_cpus() > 1 || !tegra_cpu_rail_off_ready() || + tegra20_clk_emc_on_pllp()) { cpu_do_idle(); return false; } -- 2.22.0