clk: mvebu: Use of_get_cpu_hwid() to read CPU ID
authorRob Herring <robh@kernel.org>
Fri, 9 Jun 2023 18:13:46 +0000 (12:13 -0600)
committerStephen Boyd <sboyd@kernel.org>
Tue, 20 Jun 2023 18:56:27 +0000 (11:56 -0700)
Use of_get_cpu_hwid() rather than the open coded reading of the CPU
nodes "reg" property. The existing code is in fact wrong as the "reg"
address cells size is 2 cells for arm64. The existing code happens to
work because the DTS files are wrong as well.

Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230327-mvebu-clk-fixes-v2-2-8333729ee45d@kernel.org
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/mvebu/ap-cpu-clk.c

index 71bdd7c3ff0341cd37f4d66c3f434bc225c15f1b..d8a7a4c90d54158b18b0e2fcb50678eb255b0f9b 100644 (file)
@@ -253,12 +253,12 @@ static int ap_cpu_clock_probe(struct platform_device *pdev)
         */
        nclusters = 1;
        for_each_of_cpu_node(dn) {
-               int cpu, err;
+               u64 cpu;
 
-               err = of_property_read_u32(dn, "reg", &cpu);
-               if (WARN_ON(err)) {
+               cpu = of_get_cpu_hwid(dn, 0);
+               if (WARN_ON(cpu == OF_BAD_ADDR)) {
                        of_node_put(dn);
-                       return err;
+                       return -EINVAL;
                }
 
                /* If cpu2 or cpu3 is enabled */
@@ -288,12 +288,12 @@ static int ap_cpu_clock_probe(struct platform_device *pdev)
                struct clk_init_data init;
                const char *parent_name;
                struct clk *parent;
-               int cpu, err;
+               u64 cpu;
 
-               err = of_property_read_u32(dn, "reg", &cpu);
-               if (WARN_ON(err)) {
+               cpu = of_get_cpu_hwid(dn, 0);
+               if (WARN_ON(cpu == OF_BAD_ADDR)) {
                        of_node_put(dn);
-                       return err;
+                       return -EINVAL;
                }
 
                cluster_index = cpu & APN806_CLUSTER_NUM_MASK;