From 520bcb4b2a8731571aa78cca18cc1e8560564e37 Mon Sep 17 00:00:00 2001 From: Amit Nischal Date: Fri, 14 Apr 2017 12:01:05 +0530 Subject: [PATCH] clk: msm: clock-local2: Fix get_rate ops for branch clock For branch clocks having aggr_sibling_rates flag as set, get_rate() always returns the parents rate despite the branch clocks prepare status. Fix the same by adding a check for branch prepare status and aggr_sibling_rates flag value. Change-Id: If0ba62e178f14bc5fd8ec6007a67538a9b97285b Signed-off-by: Amit Nischal --- drivers/clk/msm/clock-local2.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/clk/msm/clock-local2.c b/drivers/clk/msm/clock-local2.c index 19956f030ae9..adb07cdb7e8d 100644 --- a/drivers/clk/msm/clock-local2.c +++ b/drivers/clk/msm/clock-local2.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. +/* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -928,7 +928,8 @@ static unsigned long branch_clk_get_rate(struct clk *c) { struct branch_clk *branch = to_branch_clk(c); - if (branch->max_div) + if (branch->max_div || + (branch->aggr_sibling_rates && !branch->is_prepared)) return branch->c.rate; return clk_get_rate(c->parent);