From: Masahiro Yamada Date: Thu, 3 Dec 2015 02:20:35 +0000 (+0900) Subject: clk: let of_clk_get_parent_name() fail for invalid clock-indices X-Git-Tag: v4.14-rc1~4001^2~14^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8da411cc1964c5d6a0a0f94c7bbf8693c9673a87;p=platform%2Fkernel%2Flinux-rpi.git clk: let of_clk_get_parent_name() fail for invalid clock-indices Currently, of_clk_get_parent_name() returns a wrong parent clock name when "clock-indices" property exists and the target index is not found in the property. In this case, NULL should be returned. For example, oscillator { compatible = "myclocktype"; #clock-cells = <1>; clock-indices = <1>, <3>; clock-output-names = "clka", "clkb"; }; consumer { compatible = "myclockconsumer"; clocks = <&oscillator 0>, <&oscillator 1>; }; Currently, of_clk_get_parent_name(consumer_np, 0) returns "clka" (and of_clk_get_parent_name(consumer_np, 1) also returns "clka", this is correct). Because the "clock-indices" in the clock parent does not contain <0>, of_clk_get_parent_name(consumer_np, 0) should return NULL. Signed-off-by: Masahiro Yamada Signed-off-by: Stephen Boyd --- diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index a66efc9..9352a13 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -3079,6 +3079,9 @@ const char *of_clk_get_parent_name(struct device_node *np, int index) } count++; } + /* We went off the end of 'clock-indices' without finding it */ + if (prop && !vp) + return NULL; if (of_property_read_string_index(clkspec.np, "clock-output-names", index,