[alsa-devel] [PATCH v3 2/2] ASoC: simple-card: add multi-CODECs in DT

Lars-Peter Clausen lars at metafoo.de
Fri Nov 7 21:07:03 CET 2014


On 11/07/2014 08:05 PM, Jean-Francois Moine wrote:
> On Fri, 7 Nov 2014 12:30:35 +0000
> Mark Brown <broonie at 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



More information about the Alsa-devel mailing list