Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752077AbdGMNcd (ORCPT ); Thu, 13 Jul 2017 09:32:33 -0400 Received: from mail-wm0-f43.google.com ([74.125.82.43]:34849 "EHLO mail-wm0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751324AbdGMNcb (ORCPT ); Thu, 13 Jul 2017 09:32:31 -0400 From: Georgi Djakov To: sboyd@codeaurora.org Cc: mturquette@baylibre.com, andy.gross@linaro.org, architt@codeaurora.org, hverkuil@xs4all.nl, bjorn.andersson@linaro.org, linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, georgi.djakov@linaro.org Subject: [PATCH v2] clk: qcom: clk-smd-rpm: Fix the reported rate of branches Date: Thu, 13 Jul 2017 16:32:24 +0300 Message-Id: <20170713133224.753-1-georgi.djakov@linaro.org> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170712231413.GP22780@codeaurora.org> References: <20170712231413.GP22780@codeaurora.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1105 Lines: 29 As there is no way to actually query the hardware for the current clock rate, now racalc_rate() just returns the last rate that was previously set. But if the rate was not set yet, we return the bogus rate of 1000Hz. The branch clocks actually have the same rate as their parent (xo_board), so just return this rate. Reported-by: Archit Taneja Fixes: 00f64b58874e ("clk: qcom: Add support for SMD-RPM Clocks") Signed-off-by: Georgi Djakov --- drivers/clk/qcom/clk-smd-rpm.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/clk/qcom/clk-smd-rpm.c b/drivers/clk/qcom/clk-smd-rpm.c index d990fe44aef3..b45782657ca9 100644 --- a/drivers/clk/qcom/clk-smd-rpm.c +++ b/drivers/clk/qcom/clk-smd-rpm.c @@ -364,6 +364,10 @@ static unsigned long clk_smd_rpm_recalc_rate(struct clk_hw *hw, { struct clk_smd_rpm *r = to_clk_smd_rpm(hw); + /* Return the parent rate for branches */ + if (r->branch) + return parent_rate; + /* * RPM handles rate rounding and we don't have a way to * know what the rate will be, so just return whatever