From: Mike Turquette Date: Tue, 14 Jan 2014 20:56:01 +0000 (-0800) Subject: clk: composite: pass mux_hw into determine_rate X-Git-Tag: firefly_0821_release~6387 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=342b0a63bd7650cadd142ec81c73fc52599f9b2e;p=firefly-linux-kernel-4.4.55.git clk: composite: pass mux_hw into determine_rate The composite clock's .determine_rate implementation can call the underyling .determine_rate callback corresponding to rate_hw or the underlying .determine_rate callback corresponding to mux_hw. In both cases we pass in rate_hw, which is wrong. Fixed by passing mux_hw into the correct callback. Reported-by: Lemon Dai Signed-off-by: Mike Turquette --- diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c index 753d0b784762..57a078e06efe 100644 --- a/drivers/clk/clk-composite.c +++ b/drivers/clk/clk-composite.c @@ -71,7 +71,7 @@ static long clk_composite_determine_rate(struct clk_hw *hw, unsigned long rate, best_parent_p); } else if (mux_hw && mux_ops && mux_ops->determine_rate) { mux_hw->clk = hw->clk; - return mux_ops->determine_rate(rate_hw, rate, best_parent_rate, + return mux_ops->determine_rate(mux_hw, rate, best_parent_rate, best_parent_p); } else { pr_err("clk: clk_composite_determine_rate function called, but no mux or rate callback set!\n");