On 11/07/2014 08:05 PM, Jean-Francois Moine wrote:
On Fri, 7 Nov 2014 12:30:35 +0000 Mark Brown broonie@kernel.org wrote:
} else {
clk = of_clk_get(args.np, 0);
clk = of_clk_get((struct device_node *) dai_np, 0);
Adding this cast looks suspicous - why? As far as I can tell the original code didn't need one.
Right, 'args.np' was (struct device_node *), but, now, 'dai_np' is (const struct device_node *).
Changing 'dai_np' to (struct device_node *) in the asoc_simple_card_sub_parse_of() argument asks for a cast in calling this function because the field 'of_node' of the struct snd_soc_dai_link_component is (const struct device_node *).
Do you better like this last cast?
Casting const away is usually a sign that something is wrong and has the potential to result in undefined behavior. The correct fix in this case is probably to make the np argument for of_clk_get() const.
- Lars