Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp955785pxb; Wed, 3 Mar 2021 22:25:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJxjB6VLyjPn4/mpBNizpetPCsy6lHpqWv4oPkPW87UjtlZKN3wHga2rJ3kjqwXF1cguTA3H X-Received: by 2002:a17:906:79c7:: with SMTP id m7mr2414647ejo.337.1614839157700; Wed, 03 Mar 2021 22:25:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614839157; cv=none; d=google.com; s=arc-20160816; b=RJdkxkgkmIzJIb3RzyIHpXvyiDXLulG+bWDaGs+dtm3gX11eDm4AnCVRugKyljNI4M GnXR6/QSC2r78GckJzfoyrU3p+OdbA1ovg+tRUR1FykjTw/ocLT/rn/9G4aQpTWqJHCa TA1EWl/3HqeH/sMrAXkggXuObKDZZXcrEkEuSyDoIKEi2a6GR5rkCPSZ6G4dcZrOjs31 p7nPxjHrvJzcBaR9U7M44JYEBTnENYfhATLa8GMdX3VyO2+ZrG4Ah0+CAyi/cj0w/kNS ISx1c3lNFbYc8q940HpiBsrun9YJod3LLNnTIEfw5QcjXsL93cYkCIXZYd8oVJkBGLaQ MARQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=aryRWfHy/BwUj+ItUybdCEYjUzZTplIX20T2mcxgmzE=; b=xQg8RuTpnKVdeaIfdB4A+Up0ZM0ytv/Lq/J7erFYYxr5XFzw0gOJW8VdaIY+L3gPWD 5/eYfmzBlpLGJDEFYPVK7Vo4DuLzCttC09u1pO6JTD+wm4Y8KcR1/iZTDbChrmnqPVV/ MN3fQYUa0JLzAwx7j4npxGdgQJkf1y8FtsaVZyVrvdj6wrl+QURXyJT5OiALcxGQMX+V mjiHvMiA8IXqDkSkeWzz4BSMtbeHnJpsoXdVvVImd649Kp+zHcPmOYKHPua4K/ok0cA/ g9Ks9BoTI2p7noqJQDtz0fxH+YrhL77rLNdRHhD+oBRo3wpdeqI+icPUapmWOfE2ggsJ JdTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="VZP4QeN/"; 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 u19si7466124edq.33.2021.03.03.22.25.35; Wed, 03 Mar 2021 22:25:57 -0800 (PST) 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="VZP4QeN/"; 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 S1837938AbhCBPys (ORCPT + 99 others); Tue, 2 Mar 2021 10:54:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52862 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351119AbhCBNbV (ORCPT ); Tue, 2 Mar 2021 08:31:21 -0500 Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com [IPv6:2a00:1450:4864:20::22c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4D305C0611C1; Tue, 2 Mar 2021 05:18:11 -0800 (PST) Received: by mail-lj1-x22c.google.com with SMTP id m11so23005159lji.10; Tue, 02 Mar 2021 05:18:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=aryRWfHy/BwUj+ItUybdCEYjUzZTplIX20T2mcxgmzE=; b=VZP4QeN/pEhdY+xM+xIift124/XRhQ+hNxG5s31gOrQ0UmNDd+1WHRtfNB2643HEo8 QS1QWHA59ArORHklMztPdpGB6iEoCPSXvvXoH3QZ5VP/CRBt6PAYh8qS7Qz+lChE2jU4 iGYNHpYYbWPmTU+iuD6wUQhcBhQhlFCbM0Z2MrLUUo6bH96xu36WU68Toj/52iSq4ny0 uxVqhmU/RS/IoMlHx0E+/PHHeHmFXthCxb9Vzz+U4YFTbe6N7oRX2rR7pFRccI6qOgLc R49J6isvYNj0ypvVNVE4PjTFyHYdR9IffDHuHLW7wEVjPhObonYXoDZmS2xiYFWVfhwL ZExg== 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:mime-version :content-transfer-encoding; bh=aryRWfHy/BwUj+ItUybdCEYjUzZTplIX20T2mcxgmzE=; b=Aesv70vgbxDROaksT/LijqoJLXN/QTbREW6fd7d3PTHC6yprTyt4z2JONqg/ERs4M6 nc9PsfmfLEp6Lchaxpak0AWyGCvL2IkGkx9PSgnnhP9zoEkwzm5ycOUNwmfigbeDF4vr KDRme9tnyDBmB/dOSE1cwpE8hPxSXftekJKxs8hY0cR/QnncJ8M970wmZHhTCoS+xLQm +Iccw7GU1qYLNxB0LoIi76BkCOG0yvh2+EdqT5KV/WN1MmCmRrcQssvJhTu0la1msgkh XS/qWMqIXmvN8bZuQntpOSgAAptAZ3/xnRR5LeAybTfi0CNULvFC+1b+GCiwWiECnnIp RshQ== X-Gm-Message-State: AOAM530o/qAHhsKYcErjBx2xk/TxeM/VImnLcHo0CvHOBUx7t3/+rwY1 vN8BeWRbN6j6LA6I8WozD5I= X-Received: by 2002:a2e:a318:: with SMTP id l24mr5518441lje.399.1614691089873; Tue, 02 Mar 2021 05:18:09 -0800 (PST) Received: from localhost.localdomain (109-252-193-52.dynamic.spd-mgts.ru. [109.252.193.52]) by smtp.gmail.com with ESMTPSA id t11sm962523ljk.65.2021.03.02.05.18.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Mar 2021 05:18:09 -0800 (PST) From: Dmitry Osipenko To: Thierry Reding , Jonathan Hunter , Peter Geis , Matt Merhar Cc: linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1] soc/tegra: regulators: Fix locking up when voltage-spread is out of range Date: Tue, 2 Mar 2021 16:18:00 +0300 Message-Id: <20210302131800.14408-1-digetx@gmail.com> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Fix voltage coupler lockup which happens when voltage-spread is out of range due to a bug in the code. The max-spread requirement shall be accounted when CPU regulator doesn't have consumers. This problem is observed on Tegra30 Ouya game console once system-wide DVFS is enabled in a device-tree. Fixes: 783807436f36 ("soc/tegra: regulators: Add regulators coupler for Tegra30") Cc: stable@vger.kernel.org Reported-by: Peter Geis Tested-by: Peter Geis # Ouya T30 Tested-by: Matt Merhar # Ouya T30 Signed-off-by: Dmitry Osipenko --- drivers/soc/tegra/regulators-tegra30.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/soc/tegra/regulators-tegra30.c b/drivers/soc/tegra/regulators-tegra30.c index 7f21f31de09d..0e776b20f625 100644 --- a/drivers/soc/tegra/regulators-tegra30.c +++ b/drivers/soc/tegra/regulators-tegra30.c @@ -178,7 +178,7 @@ static int tegra30_voltage_update(struct tegra_regulator_coupler *tegra, * survive the voltage drop if it's running on a higher frequency. */ if (!cpu_min_uV_consumers) - cpu_min_uV = cpu_uV; + cpu_min_uV = max(cpu_uV, cpu_min_uV); /* * Bootloader shall set up voltages correctly, but if it -- 2.29.2