From patchwork Thu Apr 11 22:02:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 10896989 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9B4E8139A for ; Thu, 11 Apr 2019 22:04:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 877B62860A for ; Thu, 11 Apr 2019 22:04:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 85D7F28C2C; Thu, 11 Apr 2019 22:04:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 425D42860A for ; Thu, 11 Apr 2019 22:04:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726830AbfDKWE0 (ORCPT ); Thu, 11 Apr 2019 18:04:26 -0400 Received: from mail-lf1-f66.google.com ([209.85.167.66]:45065 "EHLO mail-lf1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726629AbfDKWEZ (ORCPT ); Thu, 11 Apr 2019 18:04:25 -0400 Received: by mail-lf1-f66.google.com with SMTP id t11so1387376lfl.12; Thu, 11 Apr 2019 15:04:24 -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=C0g4W32KpOFEIBf/b/mgiwGkgi29MbSE0goELOf/fPg=; b=VgWIZrIAUDoOKW+DXqMPzdrKiZFpXiFpG/YOM/Vg+z4ehUonO2RG7mffYfnwFNqvXx HtsBbEOkjoe8H6xxzdc3DpZVJPYTIlCmT1UzLmM0G1jx5t74fHt4qtPi6Fptx3Wxl19s AAPaxtzV1OQVwBogAVJP5/hx5Rs/5StM0uK4ZL69OE/2PMfO9DzRLTQa8OikiO+F4LGV 4Tw8DZjBQVgRfUV217u4FRGTf2/G6Y0n2YoKYVxPQ4ChwfdDy0pUfMJ68ISaKroZtmUS 2vUGgxlVoWvxCwC806KJ4uAmuG2H8Ecrw5rDXzes9x1LxUBsQqKg5MOccIn7FOE1MFAl 6Y4A== 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=C0g4W32KpOFEIBf/b/mgiwGkgi29MbSE0goELOf/fPg=; b=QiD9qCWNtBoMW6Z9lhM5ksN1vGRkzXkjppXfrDTIbauclu5t/02v0PEJP/XMawwhE5 V4ytsBgnn9Ypml2k/KEvMmkuZTFPeFC4UH9O7eQRvvOpCmVFLObW7TIumjtvvGpM1KvQ 1vDK8+gAsg8aJQeQlyIciehjEzZmP2TyIy1LUk4dZpNquZlpHxYSpKQEtL+DRUOHATx5 TIVyMbhcePZdB2ntgWFXrTUvtoKmUefvZrg2ml9SdHxM2N9F8J0n8hXAqlG/9y6KyPkp Ipn8eji8VC/0UDquqLPP5rRMt8zH9wkLCXRUpiYWITEDntWGlMYv4VRL7qj/prkGZ7H+ A9FA== X-Gm-Message-State: APjAAAVnPOOrPcue6WqoGVJmWQO28qOnq4V/AOa8vtNQOK88kTqDK8IK gQKki8E3N079Gb8cz0117J5DNTMq X-Google-Smtp-Source: APXvYqw1rom/1R9Vw5aZrrc8EANBM2736XvxHrLCus65r0gBONHcX4rwaIVWxb81tTFF/qH1PteNXQ== X-Received: by 2002:ac2:51d9:: with SMTP id u25mr1459238lfm.91.1555020263548; Thu, 11 Apr 2019 15:04:23 -0700 (PDT) Received: from localhost.localdomain (ppp94-29-35-107.pppoe.spdop.ru. [94.29.35.107]) by smtp.gmail.com with ESMTPSA id e18sm7887808ljb.12.2019.04.11.15.04.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Apr 2019 15:04:22 -0700 (PDT) From: Dmitry Osipenko To: Peter De Schrijver , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Thierry Reding , Jonathan Hunter , Joseph Lo Cc: linux-clk@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 1/5] clk: tegra: emc: Don't enable EMC clock manually Date: Fri, 12 Apr 2019 01:02:26 +0300 Message-Id: <20190411220230.21726-2-digetx@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190411220230.21726-1-digetx@gmail.com> References: <20190411220230.21726-1-digetx@gmail.com> MIME-Version: 1.0 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The EMC clock marked as critical, hence it is already enabled at the registration time. Signed-off-by: Dmitry Osipenko --- drivers/clk/tegra/clk-emc.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/clk/tegra/clk-emc.c b/drivers/clk/tegra/clk-emc.c index 0621a3a82ea6..23416982e7c7 100644 --- a/drivers/clk/tegra/clk-emc.c +++ b/drivers/clk/tegra/clk-emc.c @@ -532,7 +532,5 @@ struct clk *tegra_clk_register_emc(void __iomem *base, struct device_node *np, /* Allow debugging tools to see the EMC clock */ clk_register_clkdev(clk, "emc", "tegra-clk-debug"); - clk_prepare_enable(clk); - return clk; }; From patchwork Thu Apr 11 22:02:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 10896985 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3D595139A for ; Thu, 11 Apr 2019 22:04:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 295AF288C9 for ; Thu, 11 Apr 2019 22:04:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1D6C528925; Thu, 11 Apr 2019 22:04:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8ED9D2890E for ; Thu, 11 Apr 2019 22:04:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726865AbfDKWE2 (ORCPT ); Thu, 11 Apr 2019 18:04:28 -0400 Received: from mail-lj1-f195.google.com ([209.85.208.195]:45050 "EHLO mail-lj1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726633AbfDKWE1 (ORCPT ); Thu, 11 Apr 2019 18:04:27 -0400 Received: by mail-lj1-f195.google.com with SMTP id h16so6950791ljg.11; Thu, 11 Apr 2019 15:04:25 -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=JtZAJxqkYiF84xbr7exvlCrl27ojp0oQWY4kT8UdML4=; b=bnBdangi9STj29FectuS/aZA7VszLeetiilc3mMXgT+bATUhhjkvZPOSRc1F7zhFCJ IAkUqhVOvR4LFkBH2fBe16e5UkAclyqtyfcl+/VRkWXnimxqt+7KOCc7YGfFEE3/ubQW ZQCokjdSOH/2zSndb4gdvIfoRUxZYDuTCIsx7iQN2HFGlvFvCPjYAoND+n0M0rYhQJeF OgjMaRnYY0kfLyuRxN7YPmYjm1fXiT5ALEb0UNHEnvFj8Q+MRkEvKA1OqMXc2FFYK/n5 bnxHHjOACk/VbGTzgeHIQZrz9cNaVO1/4mSNisYR5KsScvR8Ujdk2K7WrPVFaIgQSs1c AU8Q== 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=JtZAJxqkYiF84xbr7exvlCrl27ojp0oQWY4kT8UdML4=; b=hforqc/dR6E3L5pPl31uF6CKcoE58mtsJOkBvPQw9UdyYiCWAZ7FxtDX5x+RLcar+e 5W7j4teaT46fHKd0zMSSaMKQXOxFfnlvYQQfpgcVTz6Q+fcyoQsb/79RLzcVvs3/dCXN 7bRNUfa9mSlg+RUf6JvXS0UsUq7lOB/zy1rlSgDQgbXKe0rNFyICNWgToHJoiChoK5dw gSirEOk2VMdrN5Pd8EhlUO/giB3GfsrQpe28/6E/HuFWvVJe6DXnnHQOzf1FazKb3XcT otkwFVsfA+/G0zBAVa7Y1XcKpQUUwHuiZuwwwc2V+RpdO7QtXcTOsNFP777NltBUtKye tWuA== X-Gm-Message-State: APjAAAXTIsDPEV798g93LkSNXkmRht1nL2tkh8Zoo40BNAJKfypKlu5B HMFX4RK+CW/zvA9+mG2B2a4= X-Google-Smtp-Source: APXvYqzRsUFVQtnAsJK9dwtXr8chUndkpQKBJ6lgonrIKRvRGrwSWQiarmPQmwSrfkJEumiY11izgQ== X-Received: by 2002:a2e:810d:: with SMTP id d13mr15084016ljg.93.1555020264745; Thu, 11 Apr 2019 15:04:24 -0700 (PDT) Received: from localhost.localdomain (ppp94-29-35-107.pppoe.spdop.ru. [94.29.35.107]) by smtp.gmail.com with ESMTPSA id e18sm7887808ljb.12.2019.04.11.15.04.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Apr 2019 15:04:24 -0700 (PDT) From: Dmitry Osipenko To: Peter De Schrijver , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Thierry Reding , Jonathan Hunter , Joseph Lo Cc: linux-clk@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 2/5] clk: tegra: emc: Support multiple ram codes parsing Date: Fri, 12 Apr 2019 01:02:27 +0300 Message-Id: <20190411220230.21726-3-digetx@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190411220230.21726-1-digetx@gmail.com> References: <20190411220230.21726-1-digetx@gmail.com> MIME-Version: 1.0 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The timings parser doesn't append timings, but instead it parses only the first timing and hence doesn't store all of the timings when device-tree has timings for multiple ram codes. In a result EMC scaling doesn't work if timings are missing. Tested-by: Steev Klimaszewski Signed-off-by: Dmitry Osipenko --- drivers/clk/tegra/clk-emc.c | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/drivers/clk/tegra/clk-emc.c b/drivers/clk/tegra/clk-emc.c index 23416982e7c7..28068584ff6e 100644 --- a/drivers/clk/tegra/clk-emc.c +++ b/drivers/clk/tegra/clk-emc.c @@ -121,18 +121,23 @@ static int emc_determine_rate(struct clk_hw *hw, struct clk_rate_request *req) struct tegra_clk_emc *tegra; u8 ram_code = tegra_read_ram_code(); struct emc_timing *timing = NULL; - int i; + int i, k; tegra = container_of(hw, struct tegra_clk_emc, hw); - for (i = 0; i < tegra->num_timings; i++) { + for (k = 0; k < tegra->num_timings; k++) { + if (tegra->timings[k].ram_code == ram_code) + break; + } + + for (i = k; i < tegra->num_timings; i++) { if (tegra->timings[i].ram_code != ram_code) - continue; + break; timing = tegra->timings + i; if (timing->rate > req->max_rate) { - i = max(i, 1); + i = max(i, k + 1); req->rate = tegra->timings[i - 1].rate; return 0; } @@ -282,7 +287,7 @@ static struct emc_timing *get_backup_timing(struct tegra_clk_emc *tegra, for (i = timing_index+1; i < tegra->num_timings; i++) { timing = tegra->timings + i; if (timing->ram_code != ram_code) - continue; + break; if (emc_parent_clk_sources[timing->parent_index] != emc_parent_clk_sources[ @@ -293,7 +298,7 @@ static struct emc_timing *get_backup_timing(struct tegra_clk_emc *tegra, for (i = timing_index-1; i >= 0; --i) { timing = tegra->timings + i; if (timing->ram_code != ram_code) - continue; + break; if (emc_parent_clk_sources[timing->parent_index] != emc_parent_clk_sources[ @@ -433,19 +438,23 @@ static int load_timings_from_dt(struct tegra_clk_emc *tegra, struct device_node *node, u32 ram_code) { + struct emc_timing *timings_ptr; struct device_node *child; int child_count = of_get_child_count(node); int i = 0, err; + size_t size; + + size = (tegra->num_timings + child_count) * sizeof(struct emc_timing); - tegra->timings = kcalloc(child_count, sizeof(struct emc_timing), - GFP_KERNEL); + tegra->timings = krealloc(tegra->timings, size, GFP_KERNEL); if (!tegra->timings) return -ENOMEM; - tegra->num_timings = child_count; + timings_ptr = tegra->timings + tegra->num_timings; + tegra->num_timings += child_count; for_each_child_of_node(node, child) { - struct emc_timing *timing = tegra->timings + (i++); + struct emc_timing *timing = timings_ptr + (i++); err = load_one_timing_from_dt(tegra, timing, child); if (err) { @@ -456,7 +465,7 @@ static int load_timings_from_dt(struct tegra_clk_emc *tegra, timing->ram_code = ram_code; } - sort(tegra->timings, tegra->num_timings, sizeof(struct emc_timing), + sort(timings_ptr, child_count, sizeof(struct emc_timing), cmp_timings, NULL); return 0; @@ -499,10 +508,10 @@ struct clk *tegra_clk_register_emc(void __iomem *base, struct device_node *np, * fuses until the apbmisc driver is loaded. */ err = load_timings_from_dt(tegra, node, node_ram_code); - of_node_put(node); - if (err) + if (err) { + of_node_put(node); return ERR_PTR(err); - break; + } } if (tegra->num_timings == 0) From patchwork Thu Apr 11 22:02:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 10896987 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 078BF139A for ; Thu, 11 Apr 2019 22:04:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E4ED62890E for ; Thu, 11 Apr 2019 22:04:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D9C6C28C17; Thu, 11 Apr 2019 22:04:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 88DB428C7E for ; Thu, 11 Apr 2019 22:04:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726661AbfDKWEq (ORCPT ); Thu, 11 Apr 2019 18:04:46 -0400 Received: from mail-lj1-f193.google.com ([209.85.208.193]:40750 "EHLO mail-lj1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726847AbfDKWE2 (ORCPT ); Thu, 11 Apr 2019 18:04:28 -0400 Received: by mail-lj1-f193.google.com with SMTP id q66so6976640ljq.7; Thu, 11 Apr 2019 15:04:26 -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=SUHPgW7dZuGazhrcakTZtDm+HbJ3DjUZGyh8GwQB52k=; b=rBXlxXu1ngSTXolx+1g1Qbtc98vDj83c9p3TnOhgzb1aJsdBct67YPD7Z9Uv479cln eEzqaQFWcqcZ70IAgZgfp7xpzirscZPo85WNsbKhOb2mUn0P8rLiGAbuA1FTHB3rCwJe oZgUnRSyFHQ8DWdb6+CvD2E5Hyyxq8sVXGbCGKHGHfqJTS7R9e/UzA8rIkUgqrA6Rp0t 51005Vuyz67R+P9V6TyUNBJDdEVtjbKOfY2Li7tuxpjAL/t5XuuRMRGAx3NXcKhdrUU+ xNxTDzGd6ZgY1Vm+HD/Wg8jIzqJNfeJ+L6CE4/GR2bArLb9do9WDEW68hkYK2+bHkFew SuYA== 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=SUHPgW7dZuGazhrcakTZtDm+HbJ3DjUZGyh8GwQB52k=; b=Pf19nd5F/KmEHomdF3/Er7QamoLoP2tKK6Q2VVmsTgoKudXgDduPKKFTX0u4l/5eCB JputHijRJCK4wIgUKwERj/VI1CeB2pKE/cIizL2LoZNCI/Olf7MfoknMpgvDNPax0O+2 T+GktUVKwHweGvsiOXnsvf+neuGliQcJdK7yAtK1PXZIf0FGt47k5Pw/xv89vOsH1uJT 5VzBOYK5iizUYoFyejVDHORu/lRUH7okRD0XFFRbMOsBRBMAUCqHvzhOJpOCL2qiF+3R pmhbgaWsyc/sy2+UZXDXCFsOCo7XaUnhz2ga5553BqCq6drxFOKnMS6V+uQdsTjjL8nu 4d0Q== X-Gm-Message-State: APjAAAXpt18GDXy0qiQBZ+Q2q39+bch29ZAs/0tKSHBCslenk/JUEvZN 4k81EYu6Yp0vgJ//oB8oGb4= X-Google-Smtp-Source: APXvYqy7gf7R3PaXZFHz6LIH8cHWlCsEVHbWo+4ffZQ7CYDryxGOfUgBP5k2b1hOMP/WjCm0Hu7ikw== X-Received: by 2002:a2e:9703:: with SMTP id r3mr18999423lji.88.1555020265933; Thu, 11 Apr 2019 15:04:25 -0700 (PDT) Received: from localhost.localdomain (ppp94-29-35-107.pppoe.spdop.ru. [94.29.35.107]) by smtp.gmail.com with ESMTPSA id e18sm7887808ljb.12.2019.04.11.15.04.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Apr 2019 15:04:25 -0700 (PDT) From: Dmitry Osipenko To: Peter De Schrijver , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Thierry Reding , Jonathan Hunter , Joseph Lo Cc: linux-clk@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 3/5] clk: tegra: emc: Fix EMC max-rate clamping Date: Fri, 12 Apr 2019 01:02:28 +0300 Message-Id: <20190411220230.21726-4-digetx@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190411220230.21726-1-digetx@gmail.com> References: <20190411220230.21726-1-digetx@gmail.com> MIME-Version: 1.0 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When a clk user requests rate that is higher than the maximum possible, the rate shall be clamped to the maximum and not to the current value. Signed-off-by: Dmitry Osipenko --- drivers/clk/tegra/clk-emc.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/clk/tegra/clk-emc.c b/drivers/clk/tegra/clk-emc.c index 28068584ff6e..9a0179235939 100644 --- a/drivers/clk/tegra/clk-emc.c +++ b/drivers/clk/tegra/clk-emc.c @@ -121,7 +121,7 @@ static int emc_determine_rate(struct clk_hw *hw, struct clk_rate_request *req) struct tegra_clk_emc *tegra; u8 ram_code = tegra_read_ram_code(); struct emc_timing *timing = NULL; - int i, k; + int i, k, t; tegra = container_of(hw, struct tegra_clk_emc, hw); @@ -130,12 +130,17 @@ static int emc_determine_rate(struct clk_hw *hw, struct clk_rate_request *req) break; } - for (i = k; i < tegra->num_timings; i++) { - if (tegra->timings[i].ram_code != ram_code) + for (t = k; t < tegra->num_timings; t++) { + if (tegra->timings[t].ram_code != ram_code) break; + } + for (i = k; i < t; i++) { timing = tegra->timings + i; + if (timing->rate < req->rate && i != t - 1) + continue; + if (timing->rate > req->max_rate) { i = max(i, k + 1); req->rate = tegra->timings[i - 1].rate; @@ -145,10 +150,8 @@ static int emc_determine_rate(struct clk_hw *hw, struct clk_rate_request *req) if (timing->rate < req->min_rate) continue; - if (timing->rate >= req->rate) { - req->rate = timing->rate; - return 0; - } + req->rate = timing->rate; + return 0; } if (timing) { From patchwork Thu Apr 11 22:02:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 10896981 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 57EEE139A for ; Thu, 11 Apr 2019 22:04:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4352C28925 for ; Thu, 11 Apr 2019 22:04:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 41A0728C54; Thu, 11 Apr 2019 22:04:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0FCAE28925 for ; Thu, 11 Apr 2019 22:04:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727004AbfDKWEa (ORCPT ); Thu, 11 Apr 2019 18:04:30 -0400 Received: from mail-lf1-f66.google.com ([209.85.167.66]:40415 "EHLO mail-lf1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726862AbfDKWE3 (ORCPT ); Thu, 11 Apr 2019 18:04:29 -0400 Received: by mail-lf1-f66.google.com with SMTP id a28so5890970lfo.7; Thu, 11 Apr 2019 15:04:27 -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=Pp1ylpAMq1DcvOKU5DqK7TZfKN1qmsD9XOpVBBwXOus=; b=k/ZgkIVt47fcoPWCWBk5hWbdPSwH7zPChSsBld5ZnAcDy4qfLRjRhvrSqm8ShVwTTC mWCYVTny/g8sSDxO40aHLUioU65rhw1eSAEjyLBBERgc9oez8C9+RNOHc4cZxTImO51s 81p+JOiTkzlP6HddyB1IHM1gVvmsupbX++L/1leqpi8MUKektvzxjXGt+opvArCHt5Sc CTNLpWzlTLPrfrTq8jb9zL1oB2oRIJUHtFLKaccq0zCTgGVUjicsmTFQnbhrTJUrHTCU 17WKWuoA2aE+UVJxHpYCMIulS1rlfEmMsMyO+CRvgUZ9B9X4aGEjMnCcPSRhVDa0uMBn qwLw== 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=Pp1ylpAMq1DcvOKU5DqK7TZfKN1qmsD9XOpVBBwXOus=; b=LPXYRa0WAG6thLIGIODm7Q2ZFk/xBBqETn9w+rKj3Zsjj7wa3EPIKxnDli3WH3Cv8+ /Rql6OWcIh5LraXxTf6SSxo3r2jxWSkiiajvcbKAYg+U5XPUUpHFcqmVIDZQZ7iJRJUH z2PJzUTeEBAhbFixRIAIwmX2JzKJmQnjD7lJVAV10RcHcWVM1EOFTyRkatl8WYfEx/QP XfFPhSng1R/STh0BJNA1Ipn5ytgTgZeU5ufrqHUxG1V3E1bGFAesO3zYRaGPMisFYtMc bf1/96+rwApKNAKnhEe+/OxPcEfdWYKoNATl5DJfXrSZAuiZn9e6T/s7rEXvp0oD0uNP sfug== X-Gm-Message-State: APjAAAWIoNQZLbvGDnax+CTeEPJtaeIB8XK6HAjZVs6T/f7708u2icjs JLB/6f69t5r/hcaoyE1j1G0= X-Google-Smtp-Source: APXvYqxn7l1uDjHXBCNStmQ/tsnv1FDCcDehm0NTAv93ql14E9ymak8RO1YNirI0uDOM7BxLZJCTiQ== X-Received: by 2002:a19:d1ce:: with SMTP id i197mr13997250lfg.149.1555020267137; Thu, 11 Apr 2019 15:04:27 -0700 (PDT) Received: from localhost.localdomain (ppp94-29-35-107.pppoe.spdop.ru. [94.29.35.107]) by smtp.gmail.com with ESMTPSA id e18sm7887808ljb.12.2019.04.11.15.04.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Apr 2019 15:04:26 -0700 (PDT) From: Dmitry Osipenko To: Peter De Schrijver , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Thierry Reding , Jonathan Hunter , Joseph Lo Cc: linux-clk@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 4/5] clk: tegra: emc: Replace BUG() with WARN_ONCE() Date: Fri, 12 Apr 2019 01:02:29 +0300 Message-Id: <20190411220230.21726-5-digetx@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190411220230.21726-1-digetx@gmail.com> References: <20190411220230.21726-1-digetx@gmail.com> MIME-Version: 1.0 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP There is no justification for the BUG() in this code. Signed-off-by: Dmitry Osipenko --- drivers/clk/tegra/clk-emc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/clk/tegra/clk-emc.c b/drivers/clk/tegra/clk-emc.c index 9a0179235939..93ecb538e59b 100644 --- a/drivers/clk/tegra/clk-emc.c +++ b/drivers/clk/tegra/clk-emc.c @@ -222,7 +222,10 @@ static int emc_set_timing(struct tegra_clk_emc *tegra, if (emc_get_parent(&tegra->hw) == timing->parent_index && clk_get_rate(timing->parent) != timing->parent_rate) { - BUG(); + WARN_ONCE(1, "parent %s rate mismatch %lu %lu\n", + __clk_get_name(timing->parent), + clk_get_rate(timing->parent), + timing->parent_rate); return -EINVAL; } From patchwork Thu Apr 11 22:02:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 10896983 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 553751708 for ; Thu, 11 Apr 2019 22:04:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3F5352890E for ; Thu, 11 Apr 2019 22:04:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2558328925; Thu, 11 Apr 2019 22:04:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CC4BA28925 for ; Thu, 11 Apr 2019 22:04:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726881AbfDKWEi (ORCPT ); Thu, 11 Apr 2019 18:04:38 -0400 Received: from mail-lf1-f65.google.com ([209.85.167.65]:38863 "EHLO mail-lf1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726629AbfDKWEa (ORCPT ); Thu, 11 Apr 2019 18:04:30 -0400 Received: by mail-lf1-f65.google.com with SMTP id u24so5889615lfg.5; Thu, 11 Apr 2019 15:04:29 -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=6GANWBDVM2KX1F8CGIb5rvHRK0fnuEyNN/3002XmRQg=; b=mLV8eGoS9WVHaiAT/cTt29GwqAoiuaAZq1E6zRvLUfwjBRYGj08VnG8Ii7zNX2oQZh OSktjqGL27hacGSfZUg9pHPCM4L38IHgjy1fZod2iYvKOgrsQ24Nc5VfJBMP9dAJ2V5u 2xAwsydlnGvWby5UlXbaLryzGyvUETYlnzPx+BZ9KkAo6kq5+GJHdKIVpvgeL5yXrjIC xvJaV9MX/cfALSbuYaeP0gV44hXQgX6O49/v4z633OXQ5yKjcM7tZRzVmUVANEQoSZpe RQrWPhNib+gLT21/96mmOyNLefSesN1TGIe/t2ET6ZyepdgZ/0kctQpgGV+mnOBA/CWn RuyA== 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=6GANWBDVM2KX1F8CGIb5rvHRK0fnuEyNN/3002XmRQg=; b=jmtlBxAopjkMFhoQy1oDYc6+tISBxAeXbSN346hetIZE+oiTUF+SO81nB4QDItLBKo sipm503HpVs6cmc7QzKoEucnT4TOMo0ReFqWC87wQd/rrtEIvDOKekGNu0hu6Gb6T81b 9ad9E8Ec29qKvdX1VL/cTzNgltCg/FoPM1u61Q3sXMV5BSHV8WNgXIP6R0nPGy6gbbnw CaqrK0sLhCeM0GDReSK/l2yJmga99CUs6529wJ+zLGQ7Mim2jTIMheJWvhB/+EwwcAx6 fiUf6v7SW+cdi/EaVWBVOxkJ/ub2bc3YDH4Nx3Q9VLfqLAhorbrwIUUZXuPUp18y+iYa sTKA== X-Gm-Message-State: APjAAAWbo5pQfvZjTBv/+z0G0Zu45BCHPTgLIUuhyMiu87I6XXeYunuU aa+mYydqnQNpUbufJxUZmWA= X-Google-Smtp-Source: APXvYqzMW6BwV6mmbIecSGpQekgBuTWyxqmkLx0KiSbcF9v/Xset+oMq/gGAgEfrOTIZ6ya3qCG3Og== X-Received: by 2002:ac2:50d8:: with SMTP id h24mr27193823lfm.7.1555020268360; Thu, 11 Apr 2019 15:04:28 -0700 (PDT) Received: from localhost.localdomain (ppp94-29-35-107.pppoe.spdop.ru. [94.29.35.107]) by smtp.gmail.com with ESMTPSA id e18sm7887808ljb.12.2019.04.11.15.04.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Apr 2019 15:04:27 -0700 (PDT) From: Dmitry Osipenko To: Peter De Schrijver , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Thierry Reding , Jonathan Hunter , Joseph Lo Cc: linux-clk@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 5/5] clk: tegra: divider: Mark Memory Controller clock as read-only Date: Fri, 12 Apr 2019 01:02:30 +0300 Message-Id: <20190411220230.21726-6-digetx@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190411220230.21726-1-digetx@gmail.com> References: <20190411220230.21726-1-digetx@gmail.com> MIME-Version: 1.0 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The Memory Controller clock rate can't be simply changed and nothing in kernel need to change the rate, hence let's make the clock read-only. Signed-off-by: Dmitry Osipenko --- drivers/clk/tegra/clk-divider.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/clk/tegra/clk-divider.c b/drivers/clk/tegra/clk-divider.c index 205fe8ff63f0..f891bbb0d06d 100644 --- a/drivers/clk/tegra/clk-divider.c +++ b/drivers/clk/tegra/clk-divider.c @@ -175,6 +175,7 @@ struct clk *tegra_clk_register_mc(const char *name, const char *parent_name, void __iomem *reg, spinlock_t *lock) { return clk_register_divider_table(NULL, name, parent_name, - CLK_IS_CRITICAL, reg, 16, 1, 0, - mc_div_table, lock); + CLK_IS_CRITICAL | + CLK_DIVIDER_READ_ONLY, + reg, 16, 1, 0, mc_div_table, lock); }