clk: composite: Fix 'switching' to same clock
authorAlexander Stein <alexander.stein@ew.tq-group.com>
Wed, 3 Nov 2021 12:24:41 +0000 (13:24 +0100)
committerStephen Boyd <sboyd@kernel.org>
Thu, 4 Nov 2021 00:49:54 +0000 (17:49 -0700)
During commit 6594988fd625 ("clk: composite: Use rate_ops.determine_rate
when also a mux is available") setting req->best_parent_hw got lost,
so best_parent_hw stays NULL during switch to the same parent. This
results in the (debug) message:
  clk_calc_new_rates: lcdif_pixel not gated but wants to reparent
and the following rate change is dropped.

Fixes: 6594988fd625 ("clk: composite: Use rate_ops.determine_rate when also a mux is available")
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Link: https://lore.kernel.org/r/20211103122441.3208576-1-alexander.stein@ew.tq-group.com
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk-composite.c

index c04ae0e7e4b4b82dfd6521e483c8ef8c8219487b..b9c5f904f53567c68db3aed1d955449596f25cae 100644 (file)
@@ -97,6 +97,7 @@ static int clk_composite_determine_rate(struct clk_hw *hw,
                                return ret;
 
                        req->rate = tmp_req.rate;
+                       req->best_parent_hw = tmp_req.best_parent_hw;
                        req->best_parent_rate = tmp_req.best_parent_rate;
 
                        return 0;