diff options
Diffstat (limited to 'target/linux/bcm53xx')
-rw-r--r-- | target/linux/bcm53xx/patches-5.4/083-v6.0-clk-iproc-Do-not-rely-on-node-name-for-correct-PLL-s.patch | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/target/linux/bcm53xx/patches-5.4/083-v6.0-clk-iproc-Do-not-rely-on-node-name-for-correct-PLL-s.patch b/target/linux/bcm53xx/patches-5.4/083-v6.0-clk-iproc-Do-not-rely-on-node-name-for-correct-PLL-s.patch deleted file mode 100644 index 12c60ce297..0000000000 --- a/target/linux/bcm53xx/patches-5.4/083-v6.0-clk-iproc-Do-not-rely-on-node-name-for-correct-PLL-s.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 1b24a132eba7a1c19475ba2510ec1c00af3ff914 Mon Sep 17 00:00:00 2001 -From: Florian Fainelli <f.fainelli@gmail.com> -Date: Mon, 5 Sep 2022 09:15:03 -0700 -Subject: [PATCH] clk: iproc: Do not rely on node name for correct PLL setup -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -After commit 31fd9b79dc58 ("ARM: dts: BCM5301X: update CRU block -description") a warning from clk-iproc-pll.c was generated due to a -duplicate PLL name as well as the console stopped working. Upon closer -inspection it became clear that iproc_pll_clk_setup() used the Device -Tree node unit name as an unique identifier as well as a parent name to -parent all clocks under the PLL. - -BCM5301X was the first platform on which that got noticed because of the -DT node unit name renaming but the same assumptions hold true for any -user of the iproc_pll_clk_setup() function. - -The first 'clock-output-names' property is always guaranteed to be -unique as well as providing the actual desired PLL clock name, so we -utilize that to register the PLL and as a parent name of all children -clock. - -Fixes: 5fe225c105fd ("clk: iproc: add initial common clock support") -Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> -Acked-by: Rafał Miłecki <rafal@milecki.pl> -Link: https://lore.kernel.org/r/20220905161504.1526-1-f.fainelli@gmail.com -Signed-off-by: Stephen Boyd <sboyd@kernel.org> ---- - drivers/clk/bcm/clk-iproc-pll.c | 12 ++++++++---- - 1 file changed, 8 insertions(+), 4 deletions(-) - ---- a/drivers/clk/bcm/clk-iproc-pll.c -+++ b/drivers/clk/bcm/clk-iproc-pll.c -@@ -736,6 +736,7 @@ void iproc_pll_clk_setup(struct device_n - const char *parent_name; - struct iproc_clk *iclk_array; - struct clk_hw_onecell_data *clk_data; -+ const char *clk_name; - - if (WARN_ON(!pll_ctrl) || WARN_ON(!clk_ctrl)) - return; -@@ -783,7 +784,12 @@ void iproc_pll_clk_setup(struct device_n - iclk = &iclk_array[0]; - iclk->pll = pll; - -- init.name = node->name; -+ ret = of_property_read_string_index(node, "clock-output-names", -+ 0, &clk_name); -+ if (WARN_ON(ret)) -+ goto err_pll_register; -+ -+ init.name = clk_name; - init.ops = &iproc_pll_ops; - init.flags = 0; - parent_name = of_clk_get_parent_name(node, 0); -@@ -803,13 +809,11 @@ void iproc_pll_clk_setup(struct device_n - goto err_pll_register; - - clk_data->hws[0] = &iclk->hw; -+ parent_name = clk_name; - - /* now initialize and register all leaf clocks */ - for (i = 1; i < num_clks; i++) { -- const char *clk_name; -- - memset(&init, 0, sizeof(init)); -- parent_name = node->name; - - ret = of_property_read_string_index(node, "clock-output-names", - i, &clk_name); |