On Sat 01 Aug 2020 at 12:02, Stephan Gerhold <stephan@xxxxxxxxxxx> wrote: > simple-card.c and meson-card-utils.c use pretty much the same > helper function to parse auxiliary devices from the device tree. > > Make it easier for other drivers to parse these from the device tree > as well by adding a shared helper function to soc-core.c. > > snd_soc_of_parse_aux_devs() is pretty much a copy of > meson_card_add_aux_devices() from meson-card-utils.c > with two minor changes: > > - Make property name configurable as parameter > - Change dev_err() message slightly for consistency with other > error messages in soc-core.c > > Signed-off-by: Stephan Gerhold <stephan@xxxxxxxxxxx> When you send multiple patches like that, you should a cover-letter describing the overall purpose of the patchset, then the patches If you look around on the mailing list this cover is usually starting with the subject "[PATCH 0/X]" Apart from this, the change looks good to me Reviewed-by: Jerome Brunet <jbrunet@xxxxxxxxxxxx> > --- > I have another patch set that I will submit separately which makes > use of this function to parse aux devs from the device tree within > qcom_snd_parse_of(). This is preparation for that patch set. > --- > include/sound/soc.h | 1 + > sound/soc/soc-core.c | 31 +++++++++++++++++++++++++++++++ > 2 files changed, 32 insertions(+) > > diff --git a/include/sound/soc.h b/include/sound/soc.h > index 5e3919ffb00c..a0918d159fd3 100644 > --- a/include/sound/soc.h > +++ b/include/sound/soc.h > @@ -1331,6 +1331,7 @@ void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card, > > int snd_soc_of_parse_audio_routing(struct snd_soc_card *card, > const char *propname); > +int snd_soc_of_parse_aux_devs(struct snd_soc_card *card, const char *propname); > unsigned int snd_soc_of_parse_daifmt(struct device_node *np, > const char *prefix, > struct device_node **bitclkmaster, > diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c > index 2fe1b2ec7c8f..bf46f410c8c6 100644 > --- a/sound/soc/soc-core.c > +++ b/sound/soc/soc-core.c > @@ -2827,6 +2827,37 @@ int snd_soc_of_parse_audio_routing(struct snd_soc_card *card, > } > EXPORT_SYMBOL_GPL(snd_soc_of_parse_audio_routing); > > +int snd_soc_of_parse_aux_devs(struct snd_soc_card *card, const char *propname) > +{ > + struct device_node *node = card->dev->of_node; > + struct snd_soc_aux_dev *aux; > + int num, i; > + > + num = of_count_phandle_with_args(node, propname, NULL); > + if (num == -ENOENT) { > + return 0; > + } else if (num < 0) { > + dev_err(card->dev, "ASOC: Property '%s' could not be read: %d\n", > + propname, num); > + return num; > + } > + > + aux = devm_kcalloc(card->dev, num, sizeof(*aux), GFP_KERNEL); > + if (!aux) > + return -ENOMEM; > + card->aux_dev = aux; > + card->num_aux_devs = num; > + > + for_each_card_pre_auxs(card, i, aux) { > + aux->dlc.of_node = of_parse_phandle(node, propname, i); > + if (!aux->dlc.of_node) > + return -EINVAL; > + } > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(snd_soc_of_parse_aux_devs); > + > unsigned int snd_soc_of_parse_daifmt(struct device_node *np, > const char *prefix, > struct device_node **bitclkmaster,