On Tue, 2020-05-19 at 10:01 +0900, Kuninori Morimoto wrote: > From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > > Current ALSA SoC has many dai_link->xxx() functions. > But, it is implemented randomly at random place. > > This patch creates new soc-link.c to collect dai_link related > operation into it. > > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > --- > include/sound/soc-link.h | 13 +++++++++++++ > include/sound/soc.h | 1 + > sound/soc/Makefile | 2 +- > sound/soc/soc-core.c | 11 +++-------- > sound/soc/soc-link.c | 36 ++++++++++++++++++++++++++++++++++++ > 5 files changed, 54 insertions(+), 9 deletions(-) > create mode 100644 include/sound/soc-link.h > create mode 100644 sound/soc/soc-link.c > > diff --git a/include/sound/soc-link.h b/include/sound/soc-link.h > new file mode 100644 > index 000000000000..7fc5cead5942 > --- /dev/null > +++ b/include/sound/soc-link.h > @@ -0,0 +1,13 @@ > +/* SPDX-License-Identifier: GPL-2.0 > + * > + * soc-link.h > + * > + * Copyright (C) 2019 Renesas Electronics Corp. 2020? > + * Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > + */ > +#ifndef __SOC_LINK_H > +#define __SOC_LINK_H > + > +int snd_soc_link_init(struct snd_soc_pcm_runtime *rtd); > + > +#endif /* __SOC_LINK_H */ > diff --git a/include/sound/soc.h b/include/sound/soc.h > index a7fa64260108..81d5337963ce 100644 > --- a/include/sound/soc.h > +++ b/include/sound/soc.h > @@ -1449,5 +1449,6 @@ static inline void > snd_soc_dapm_mutex_unlock(struct snd_soc_dapm_context *dapm) > } > > #include <sound/soc-component.h> > +#include <sound/soc-link.h> Why do we need to include this in soc.h? Is it to ensure that soc- link.h included in all files that include soc.h? I think the right way to do this would be include soc-link.h where it is needed, say for example in soc-pcm.c etc. > > #endif > diff --git a/sound/soc/Makefile b/sound/soc/Makefile > index 861a21b79484..70a5f19ea3a1 100644 > --- a/sound/soc/Makefile > +++ b/sound/soc/Makefile > @@ -1,6 +1,6 @@ > # SPDX-License-Identifier: GPL-2.0 > snd-soc-core-objs := soc-core.o soc-dapm.o soc-jack.o soc-utils.o > soc-dai.o soc-component.o > -snd-soc-core-objs += soc-pcm.o soc-io.o soc-devres.o soc-ops.o > +snd-soc-core-objs += soc-pcm.o soc-io.o soc-devres.o soc-ops.o soc- > link.o > snd-soc-core-$(CONFIG_SND_SOC_COMPRESS) += soc-compress.o > > ifneq ($(CONFIG_SND_SOC_TOPOLOGY),) > diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c > index e697258d2ffc..d5450e61626a 100644 > --- a/sound/soc/soc-core.c > +++ b/sound/soc/soc-core.c > @@ -1049,14 +1049,9 @@ static int soc_init_pcm_runtime(struct > snd_soc_card *card, > rtd->pmdown_time = pmdown_time; > > /* do machine specific initialization */ > - if (dai_link->init) { > - ret = dai_link->init(rtd); > - if (ret < 0) { > - dev_err(card->dev, "ASoC: failed to init %s: > %d\n", > - dai_link->name, ret); > - return ret; > - } > - } > + ret = snd_soc_link_init(rtd); > + if (ret < 0) > + return ret; > > if (dai_link->dai_fmt) { > ret = snd_soc_runtime_set_dai_fmt(rtd, dai_link- > >dai_fmt); > diff --git a/sound/soc/soc-link.c b/sound/soc/soc-link.c > new file mode 100644 > index 000000000000..4bdd8d0dd93a > --- /dev/null > +++ b/sound/soc/soc-link.c > @@ -0,0 +1,36 @@ > +// SPDX-License-Identifier: GPL-2.0 > +// > +// soc-link.c > +// > +// Copyright (C) 2019 Renesas Electronics Corp. 2020? Thanks, Ranjani