On Mon, Nov 03, 2014 at 06:42:22PM +0100, Jean-Francois Moine wrote:
SoC audio cards may have many CODECs per audio link. This patch exports a core function to handle such links when they are described in the DT.
It would be a lot easier to review this change if the changelog said what the description this was intended to parse looks like...
+int snd_soc_of_get_dai_link_codecs(struct device_node *of_node,
const char *list_name,
struct snd_soc_dai_link *dai_link)
This is a newly exported function, please add kerneldoc for it.
+{
- struct of_phandle_args args;
- struct snd_soc_dai_link_component *component;
- int index, ret;
- for (index = 0, component = dai_link->codecs;
index < dai_link->num_codecs;
index++, component++) {
ret = of_parse_phandle_with_args(of_node, list_name,
"#sound-dai-cells",
index, &args);
if (ret)
goto err;
component->of_node = args.np;
ret = snd_soc_get_dai_name(&args, &component->dai_name);
if (ret < 0)
goto err;
- }
We're relying on the caller to fill in the number of CODECs and not checking that there aren't extra things in the list in the DT that we're ignoring. I'd expect us to either get the number of CODECs as part of this function or check that there isn't anything extra in the list.
I'd also expect some sort of error message on parse failures to help people writing DTs.