From patchwork Fri Sep 21 22:01:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Yang X-Patchwork-Id: 10610995 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 8311D112B for ; Fri, 21 Sep 2018 22:02:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 74D0B2E793 for ; Fri, 21 Sep 2018 22:02:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 683022E799; Fri, 21 Sep 2018 22:02:05 +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 ED0592E793 for ; Fri, 21 Sep 2018 22:02:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391467AbeIVDwr (ORCPT ); Fri, 21 Sep 2018 23:52:47 -0400 Received: from mail-io1-f67.google.com ([209.85.166.67]:32845 "EHLO mail-io1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391323AbeIVDwr (ORCPT ); Fri, 21 Sep 2018 23:52:47 -0400 Received: by mail-io1-f67.google.com with SMTP id l25-v6so455156ioj.0; Fri, 21 Sep 2018 15:01:59 -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; bh=e4d6SUz6jd2Yml7+iF79CF3Q+GxZN3hRxdA7HUKhIP4=; b=OsJ/2Ggl+ckSFSzEKWF9T7LdkGEJLU6CpsGloK8cr1stHpIw0kryPPr5PJVuaVlmDm yfw+w1RJNTtBul51TnSnRRGLg3jF5naGrGg1oqDH6sMKeAJv1VWOce7a6BUlZ92kNGHB OeQIX7N8gyGj+OjRua3F8rD7SFqgfvdB96z9RCJP1lhUZgJEZASlrefDzfjxPWg4G+zb Xe/Ef2Dte4FeWQ5O8CY5JVIAo8mnh2yvO3UmLAZXggFW3v8jKO5GNG9r0NSq7uFsrv0C Kmjmi/PKOM+L9j8UEVPlHhdsj2IzM+NjxGnlPloetfizpoQ34FrbmpP3jouIdCbAq+NT SYtQ== 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; bh=e4d6SUz6jd2Yml7+iF79CF3Q+GxZN3hRxdA7HUKhIP4=; b=nVOrDOArGjfDYGy3W1VKzUuIAVN6+/4pynf0VEYzv5tZZmZ6Km3ur9wm9EslvdaEaK 5J5iFmxRP+a5H1ieRBihVkP2JBCB8L/XsezWrioexJPeQb4W6UQMyiZRBqh9X0MYx5Hd jdIElaDS3eTLq6qnKTl1sbxmnbG3vfYakCfehR5ijHXTo6P5Ql9T/5/hW6ABnE+yAAYv rzhkKXeqJlkWFaj3/E1JrnMDN0ZOTW7fNt1vsRSYC7a+Sku4ThN8tfcynV5wxETQJh6z XvGsUqO7M+J+5wZ7Wq8kZgYNUoKj1gL9XJSqj9pyyvISkG3GvAFVRxsI9hLMdtRq96Fd wfSQ== X-Gm-Message-State: APzg51B+Syoq1tbBU7iu7egOGdrUQ4f/Wp9AwaKUqwwp+DcGsLJKcHDw /2fKEintF3dsay2VM+P8UzGXQ20+Jg== X-Google-Smtp-Source: ANB0VdYwQ6V1x5IxCC5jgVgYRDnOM/gKEclPaK9SFOqyIUOfcdxBlZ2uto3YXG0sMWo5067POVwdcQ== X-Received: by 2002:a6b:e15:: with SMTP id 21-v6mr38771075ioo.149.1537567318608; Fri, 21 Sep 2018 15:01:58 -0700 (PDT) Received: from localhost.localdomain (CPE1cabc0918a93-CM1cabc0918a90.cpe.net.cable.rogers.com. [99.229.26.117]) by smtp.gmail.com with ESMTPSA id w140-v6sm223101iof.22.2018.09.21.15.01.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 21 Sep 2018 15:01:57 -0700 (PDT) From: ryang To: Peter De Schrijver Cc: Prashant Gaikwad , Michael Turquette , Stephen Boyd , Thierry Reding , Jonathan Hunter , linux-clk@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, ryang Subject: [PATCH] clk: tegra: Return the exact clock rate from clk_round_rate Date: Fri, 21 Sep 2018 18:01:49 -0400 Message-Id: <20180921220149.17136-1-decatf@gmail.com> X-Mailer: git-send-email 2.17.1 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 current behavior is that clk_round_rate would return the same clock rate passed to it for valid PLL configurations. This change will return the exact rate the PLL will provide in accordance with clk API. Signed-off-by: ryang Acked-by: Thierry Reding --- drivers/clk/tegra/clk-pll.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/clk/tegra/clk-pll.c b/drivers/clk/tegra/clk-pll.c index 17a058c3bbc1..36014a6ec42e 100644 --- a/drivers/clk/tegra/clk-pll.c +++ b/drivers/clk/tegra/clk-pll.c @@ -595,7 +595,12 @@ static int _calc_rate(struct clk_hw *hw, struct tegra_clk_pll_freq_table *cfg, return -EINVAL; } - cfg->output_rate >>= p_div; + if (cfg->m == 0) { + cfg->output_rate = 0; + } else { + cfg->output_rate = cfg->n * DIV_ROUND_UP(parent_rate, cfg->m); + cfg->output_rate >>= p_div; + } if (pll->params->pdiv_tohw) { ret = _p_div_to_hw(hw, 1 << p_div);