[alsa-devel] [PATCH 1/4 v6] ASoC: add .of_xlate_dai_name callback on struct snd_soc_dai_driver
Lars-Peter Clausen
lars at metafoo.de
Tue Feb 19 16:50:39 CET 2013
On 02/14/2013 10:21 AM, Kuninori Morimoto wrote:
[...]
> +const char *snd_soc_of_get_port_dai_name(struct device_node *of_node,
> + const char *prop)
> +{
> + struct snd_soc_dai *dai;
> + struct of_phandle_args args;
> + const char *name;
> + int ret;
> +
> + ret = of_parse_phandle_with_args(of_node, prop,
> + "#sound-dai-cells", 0, &args);
> + if (ret)
> + return NULL;
> +
> + of_node_put(args.np);
You should keep the reference until after the link.
> +
> + list_for_each_entry(dai, &dai_list, list) {
> + if (dai->dev->of_node != args.np)
> + continue;
> +
> + if (dai->driver->of_xlate_dai_name) {
> + name = dai->driver->of_xlate_dai_name(dai, &args);
> + if (name)
> + return name;
> + }
Hm, this is not really a translate function, but rather a match function. It
iterates over all dais of the device and returns the name of the first one
which matches. But there is no translation going on. If the dai matches the
callback will always want to return dai->driver->name. Anything else doesn't
make much sense.
> + }
> +
> + return NULL;
> +}
More information about the Alsa-devel
mailing list