hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/clk/bcm/clk-iproc-pll.c
....@@ -732,10 +732,11 @@
732732 int i, ret;
733733 struct iproc_pll *pll;
734734 struct iproc_clk *iclk;
735
- struct clk_init_data init = {};
735
+ struct clk_init_data init;
736736 const char *parent_name;
737737 struct iproc_clk *iclk_array;
738738 struct clk_hw_onecell_data *clk_data;
739
+ const char *clk_name;
739740
740741 if (WARN_ON(!pll_ctrl) || WARN_ON(!clk_ctrl))
741742 return;
....@@ -783,7 +784,12 @@
783784 iclk = &iclk_array[0];
784785 iclk->pll = pll;
785786
786
- init.name = node->name;
787
+ ret = of_property_read_string_index(node, "clock-output-names",
788
+ 0, &clk_name);
789
+ if (WARN_ON(ret))
790
+ goto err_pll_register;
791
+
792
+ init.name = clk_name;
787793 init.ops = &iproc_pll_ops;
788794 init.flags = 0;
789795 parent_name = of_clk_get_parent_name(node, 0);
....@@ -803,13 +809,11 @@
803809 goto err_pll_register;
804810
805811 clk_data->hws[0] = &iclk->hw;
812
+ parent_name = clk_name;
806813
807814 /* now initialize and register all leaf clocks */
808815 for (i = 1; i < num_clks; i++) {
809
- const char *clk_name;
810
-
811816 memset(&init, 0, sizeof(init));
812
- parent_name = node->name;
813817
814818 ret = of_property_read_string_index(node, "clock-output-names",
815819 i, &clk_name);