On 11/30, Masahiro Yamada wrote: > 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 <yamada.masahiro@xxxxxxxxxxxxx> Here's the proposed alternative, if you agree I will merge it with the above commit text and attribution to you. diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index a66efc9d8bfc..f54583a9835a 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 (!vp && count) + return NULL; if (of_property_read_string_index(clkspec.np, "clock-output-names", index, -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html