Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2140914pxj; Sun, 16 May 2021 16:07:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzwx4zwLui4Y3k9piwo3VL4MYtKk8zZ6JEaaP+Mu6LwuHK9IxDWnYj3QZ40i3yeOudsA0Gd X-Received: by 2002:aa7:c150:: with SMTP id r16mr66846952edp.82.1621206432652; Sun, 16 May 2021 16:07:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621206432; cv=none; d=google.com; s=arc-20160816; b=UTUptEjCy4+5uIgF3K3cCOqrKdLzjUA7KmxAkmgfXCissemhNe8ctilQqkutNJieQh udnVlTenTO9JjV9J2MHHpEpp8hPv4SEwpZi/I8+Z5at+jrDTthWASi1xHYkginBdRl00 4wHfj1HyjMtmVdkhD+UrCDVs7iejj4+LH7yifCN4afdsAgrIEsnzBqbHfeYrr9a01vku A6KwCf3M9NIysH9yQX3VxKmUa0RqMtBL83PseWHm87owX5L2uQZFtMgQua9fox5xX+hH GzgJsuUUBzsEE8D3LU2/MaMksocVBYVUSUgF6xkdyt+d4Ts3NYfSPLG1D6ABBKqZ1Gq1 Y1vQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=0JGz9I0bXsTqRTuktP7wK1Haki3njJOFWPxNugzWJw4=; b=haNqt15VUaIkg+oZj1i2qGhn2udYRXnUtcPLHZ/jTxXPyPy0Yy98yM/FsJ6rU7vgaT Cs6zvvbjLkGfOx4v8ATrhRI7t1DmmgtfDKuXuvIVAiBI/3hVt1mi0fAER0vagxU4bpoD hK38nuPiFyAk9Rbwszvx8wg8MWJ1wsBYr8qtxGE1S0MPFD3blhVfI2UKgi3HJIeX97pp SedIuu80ngAV07Bc5fV0C9N5fCrBALWBksPKLFTL55vgYgX2eMpFLRtGdx2F4osnldra 0S6bQB5fRhUn1YO0P2tD7GDjJxQyS+Ol67/bB41kEHIyr30nngZlHwmjiFTXu5X70kJq MzHQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=E1sESKs8; 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 bo12si1011379edb.267.2021.05.16.16.06.33; Sun, 16 May 2021 16:07:12 -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=E1sESKs8; 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 S233677AbhEPQch (ORCPT + 99 others); Sun, 16 May 2021 12:32:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58450 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232357AbhEPQcU (ORCPT ); Sun, 16 May 2021 12:32:20 -0400 Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1DB0BC06174A; Sun, 16 May 2021 09:31:04 -0700 (PDT) Received: by mail-lf1-x132.google.com with SMTP id j6so2590772lfr.11; Sun, 16 May 2021 09:31:04 -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=0JGz9I0bXsTqRTuktP7wK1Haki3njJOFWPxNugzWJw4=; b=E1sESKs8TGyYHhrpvNRp1VP+8t6lJwEwL5FiP02BwlRsZg7xBUjTa7FN4lg7JWPxyd hX1mcZadWKXjHlIe/B/C43U9lnOvTsiz+jlxMcZorI+5fPnCbqlTYtmh7sFyXoogvkSW eJH6+YyC0irkZp8H1cVhKoPXnuwqFK3r8jfbttFNVsQf+h0hzkob2BU3ByiBgIuyfQZa q7M3wuvBx8JUHC+03CnyuqDQjatNRUvooXZCCvLeimIxSGsUCvjI5BWnPNeRJiefWxYD OogFMeeBWZ24Wqqbj52MNBIAv2wHijohZRwYVDm7WEEYCfePUgF3jyxPbHv4ziF3hfpo 2GGQ== 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=0JGz9I0bXsTqRTuktP7wK1Haki3njJOFWPxNugzWJw4=; b=WxZgxmB+8B6CqQYc8qAR+85xKHYCv/8zOgpSAOfyiN445M/2a34bNqhQr2SyaRnk+W zBUgltL9+oL8FeW26yK2i0MHVPmhJtXUGUoxlN2WXWGtREdOY15kqUxihPPsZbLGmiqI VHyzrhsghschkwgp3DCXlPQmlEoAklSWi7hH1hP/ovC2Pv/VdvswNxml2CqUsMjUzd0w uLo1IKO3rnxSIORUu5HYtMitz/9ZcZ8+/1aca4NI9iLAnubxua9GQcAXPp0LnuWuuKae 70ae5/ba+1ToT7imuUiV5LG4kPyYRrhYpqOtkGoVSz4ieDOf3iTg/T/CDcN/W9zSDekf LAJg== X-Gm-Message-State: AOAM533LzC3ASzGKNUsCDEb09/PoNRADAnljE0yfJtzsjWbqzamIfiAr exQQ4gYgG8aqV25Bq2TzqqY= X-Received: by 2002:ac2:52ae:: with SMTP id r14mr41748527lfm.144.1621182662672; Sun, 16 May 2021 09:31:02 -0700 (PDT) Received: from localhost.localdomain (109-252-193-91.dynamic.spd-mgts.ru. [109.252.193.91]) by smtp.gmail.com with ESMTPSA id m2sm1704548lfo.23.2021.05.16.09.31.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 May 2021 09:31:02 -0700 (PDT) From: Dmitry Osipenko To: Thierry Reding , Jonathan Hunter , Peter De Schrijver , Prashant Gaikwad , Michael Turquette , Stephen Boyd , =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= Cc: Rob Herring , linux-tegra@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v8 5/9] clk: tegra: Don't allow zero clock rate for PLLs Date: Sun, 16 May 2021 19:30:37 +0300 Message-Id: <20210516163041.12818-6-digetx@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210516163041.12818-1-digetx@gmail.com> References: <20210516163041.12818-1-digetx@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Zero clock rate doesn't make sense for PLLs and tegra-clk driver enters into infinite loop on trying to calculate PLL parameters for zero rate. Make code to error out if requested rate is zero. Originally this trouble was found by Robert Yang while he was trying to bring up upstream kernel on Samsung Galaxy Tab, which happened due to a bug in Tegra DRM driver that erroneously sets PLL rate to zero. This issues came over again recently during of kernel bring up on ASUS TF700T. Signed-off-by: Dmitry Osipenko --- drivers/clk/tegra/clk-pll.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/clk/tegra/clk-pll.c b/drivers/clk/tegra/clk-pll.c index 823a567f2adc..eaa079c177c3 100644 --- a/drivers/clk/tegra/clk-pll.c +++ b/drivers/clk/tegra/clk-pll.c @@ -558,6 +558,9 @@ static int _calc_rate(struct clk_hw *hw, struct tegra_clk_pll_freq_table *cfg, u32 p_div = 0; int ret; + if (!rate) + return -EINVAL; + switch (parent_rate) { case 12000000: case 26000000: -- 2.30.2