From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 711ECC43613 for ; Mon, 24 Jun 2019 02:19:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4452220674 for ; Mon, 24 Jun 2019 02:19:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BS+Tea3z" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726996AbfFXCTn (ORCPT ); Sun, 23 Jun 2019 22:19:43 -0400 Received: from mail-lj1-f194.google.com ([209.85.208.194]:33076 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726307AbfFXCTm (ORCPT ); Sun, 23 Jun 2019 22:19:42 -0400 Received: by mail-lj1-f194.google.com with SMTP id h10so10999673ljg.0; Sun, 23 Jun 2019 19:19:40 -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=ZZ3S4ko4rhzz11J2Xx7a4YmK+NWutFk+HFnNQWUEdvw=; b=BS+Tea3zmzxoPU04xRAAaLl76KamQs6PwaEaGSRjZON+q2IyCRwnOgqQyE86X3uqnc iGDTh4VflZhJiM3Bih7Xr+XtdtUMg4slnIxdUTenBStuoMmezkhGQ0LBXzMsDdQb6OX5 t4/LGiVuxH4VjULhZorsAcA6UpqIyhKnzSsjif8jTuyZ3LS3cgx7gPaMsgql0NwOUzBz Qnkg3S4y9ZdoUbKcTensEBXnu9CYZxks78LyDF61nwadN1rWK/ZT26qPWm3r/s/HU8TV CDXIkBUnGbjpNuXWjKV03bMymd9FDZCcVY3YpcbDfcYkcgmw/9cDNLAAZ9U9FDwmdoxw ZJMQ== 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=ZZ3S4ko4rhzz11J2Xx7a4YmK+NWutFk+HFnNQWUEdvw=; b=QTu0uSPLfHbinorEQpGWUywYl5cPIsRhV8UZrG9xWDARkyy6viJGw7KdAIjxgEFYua AuXMdISwclSCIHaoV3qDo+6f/AvDOJUcuXbpNTWHD8pWzYsW9IbvL9vAjYOfN/pDkeXF 5BGJ9iXLw7hPZiUXkFSZFWHD27IPxe7xCgyvOBObQTVk9dI3M8/ASen1PutzVNRpE4AS LW60sFGAmVEpqt0u7Qeh3lI/MYgLBBVdFlCQE3W31d85ip2EdXZLx6zNeJR9srkPtO9b vU5O0tNB0br9JFpPdwSrHvgp21yRbh9Clj39isV6K0tt09tdjX2VzaFJjW4tydKruEGm evUQ== X-Gm-Message-State: APjAAAVM84hn9B/2BYTLgymA9aRse6jtHDKEp8LJjpBBJk4EiAmIblK+ KrmgG3tpj7S2xWnzgMzpSNYeGjhW X-Google-Smtp-Source: APXvYqz/1pptBkM+S/YWwqSJbGbSxrxlVI4na5c/6wBwgdZ9y6LGS0uS1joFc+ryJ6iPGJRv2pBrCg== X-Received: by 2002:a2e:124c:: with SMTP id t73mr46668176lje.190.1561336318633; Sun, 23 Jun 2019 17:31:58 -0700 (PDT) Received: from localhost.localdomain (ppp91-79-162-197.pppoe.mtu-net.ru. [91.79.162.197]) by smtp.gmail.com with ESMTPSA id y5sm1495146ljj.5.2019.06.23.17.31.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 23 Jun 2019 17:31:58 -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 v5 02/10] memory: tegra20-emc: Drop setting EMC rate to max on probe Date: Mon, 24 Jun 2019 03:31:24 +0300 Message-Id: <20190624003132.29473-3-digetx@gmail.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190624003132.29473-1-digetx@gmail.com> References: <20190624003132.29473-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 The memory frequency scaling will be managed by tegra20-devfreq driver and PM QoS once all the prerequisite patches will get upstreamed. The parent clock is now managed by the clock driver and we also should assume that PLLM rate can't be changed on some devices (Galaxy Tab 10.1 for example). Altogether there is no point in touching of clock's rate from the EMC driver. Acked-by: Peter De Schrijver Signed-off-by: Dmitry Osipenko --- drivers/memory/tegra/tegra20-emc.c | 78 +----------------------------- 1 file changed, 1 insertion(+), 77 deletions(-) diff --git a/drivers/memory/tegra/tegra20-emc.c b/drivers/memory/tegra/tegra20-emc.c index 9ee5bef49e47..da8fa592b071 100644 --- a/drivers/memory/tegra/tegra20-emc.c +++ b/drivers/memory/tegra/tegra20-emc.c @@ -137,9 +137,6 @@ struct tegra_emc { struct device *dev; struct completion clk_handshake_complete; struct notifier_block clk_nb; - struct clk *backup_clk; - struct clk *emc_mux; - struct clk *pll_m; struct clk *clk; void __iomem *regs; @@ -424,41 +421,6 @@ static int emc_setup_hw(struct tegra_emc *emc) return 0; } -static int emc_init(struct tegra_emc *emc, unsigned long rate) -{ - int err; - - err = clk_set_parent(emc->emc_mux, emc->backup_clk); - if (err) { - dev_err(emc->dev, - "failed to reparent to backup source: %d\n", err); - return err; - } - - err = clk_set_rate(emc->pll_m, rate); - if (err) { - dev_err(emc->dev, - "failed to change pll_m rate: %d\n", err); - return err; - } - - err = clk_set_parent(emc->emc_mux, emc->pll_m); - if (err) { - dev_err(emc->dev, - "failed to reparent to pll_m: %d\n", err); - return err; - } - - err = clk_set_rate(emc->clk, rate); - if (err) { - dev_err(emc->dev, - "failed to change emc rate: %d\n", err); - return err; - } - - return 0; -} - static int tegra_emc_probe(struct platform_device *pdev) { struct device_node *np; @@ -522,52 +484,14 @@ static int tegra_emc_probe(struct platform_device *pdev) return err; } - emc->pll_m = clk_get_sys(NULL, "pll_m"); - if (IS_ERR(emc->pll_m)) { - err = PTR_ERR(emc->pll_m); - dev_err(&pdev->dev, "failed to get pll_m clock: %d\n", err); - return err; - } - - emc->backup_clk = clk_get_sys(NULL, "pll_p"); - if (IS_ERR(emc->backup_clk)) { - err = PTR_ERR(emc->backup_clk); - dev_err(&pdev->dev, "failed to get pll_p clock: %d\n", err); - goto put_pll_m; - } - - emc->emc_mux = clk_get_parent(emc->clk); - if (IS_ERR(emc->emc_mux)) { - err = PTR_ERR(emc->emc_mux); - dev_err(&pdev->dev, "failed to get emc_mux clock: %d\n", err); - goto put_backup; - } - err = clk_notifier_register(emc->clk, &emc->clk_nb); if (err) { dev_err(&pdev->dev, "failed to register clk notifier: %d\n", err); - goto put_backup; - } - - /* set DRAM clock rate to maximum */ - err = emc_init(emc, emc->timings[emc->num_timings - 1].rate); - if (err) { - dev_err(&pdev->dev, "failed to initialize EMC clock rate: %d\n", - err); - goto unreg_notifier; + return err; } return 0; - -unreg_notifier: - clk_notifier_unregister(emc->clk, &emc->clk_nb); -put_backup: - clk_put(emc->backup_clk); -put_pll_m: - clk_put(emc->pll_m); - - return err; } static const struct of_device_id tegra_emc_of_match[] = { -- 2.22.0