Message ID | 20210121071659.1226489-3-m.tretter@pengutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | soc: xilinx: vcu: Convert driver to clock provider | expand |
Quoting Michael Tretter (2021-01-20 23:16:46) > If a driver registers a divider clock with a parent_hw instead of the > parent_name, the parent_hw is ignored and the clock does not have a > parent. > > Fix this by initializing the parents the same way they are initialized > for clock gates. > > Fixes: ff258817137a ("clk: divider: Add support for specifying parents via DT/pointers") > Signed-off-by: Michael Tretter <m.tretter@pengutronix.de> > Reviewed-by: Stephen Boyd <sboyd@kernel.org> > Acked-by: Michal Simek <michal.simek@xilinx.com> > --- Applied to clk-next
diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c index c499799693cc..344997203f0e 100644 --- a/drivers/clk/clk-divider.c +++ b/drivers/clk/clk-divider.c @@ -494,8 +494,13 @@ struct clk_hw *__clk_hw_register_divider(struct device *dev, else init.ops = &clk_divider_ops; init.flags = flags; - init.parent_names = (parent_name ? &parent_name: NULL); - init.num_parents = (parent_name ? 1 : 0); + init.parent_names = parent_name ? &parent_name : NULL; + init.parent_hws = parent_hw ? &parent_hw : NULL; + init.parent_data = parent_data; + if (parent_name || parent_hw || parent_data) + init.num_parents = 1; + else + init.num_parents = 0; /* struct clk_divider assignments */ div->reg = reg;